Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 15 additions & 16 deletions pybind11_abseil/tests/absl_example.cc
Original file line number Diff line number Diff line change
Expand Up @@ -147,14 +147,14 @@ absl::Cord ReturnAbslCord(const std::string& values) {
return cord;
}

bool CheckOptional(const absl::optional<int> optional, bool given, int value) {
bool CheckOptional(const std::optional<int> optional, bool given, int value) {
if (!given && !optional.has_value()) return true;
if (given && optional.has_value() && optional.value() == value) return true;
return false;
}

absl::optional<int> MakeOptional() { return absl::nullopt; }
absl::optional<int> MakeOptional(int value) { return value; }
std::optional<int> MakeOptional() { return absl::nullopt; }
std::optional<int> MakeOptional(int value) { return value; }

absl::flat_hash_map<int, int> MakeMap(
const std::vector<std::pair<int, int>>& keys_and_values) {
Expand Down Expand Up @@ -324,7 +324,7 @@ struct A {
struct B {
int b;
};
typedef absl::variant<A, B> AOrB;
typedef std::variant<A, B> AOrB;

int VariantToInt(AOrB value) {
if (absl::holds_alternative<A>(value)) {
Expand All @@ -339,22 +339,22 @@ int VariantToInt(AOrB value) {
std::vector<AOrB> IdentityWithCopy(const std::vector<AOrB>& value) {
return value;
}
std::vector<absl::variant<A*, B*>> Identity(
const std::vector<absl::variant<A*, B*>>& value) {
std::vector<std::variant<A*, B*>> Identity(
const std::vector<std::variant<A*, B*>>& value) {
return value;
}

bool CheckVariant(const absl::variant<absl::monostate, int> variant,
bool given, int value) {
bool CheckVariant(const std::variant<absl::monostate, int> variant, bool given,
int value) {
if (!given && !absl::holds_alternative<int>(variant)) return true;
if (given && absl::holds_alternative<int>(variant) &&
absl::get<int>(variant) == value)
return true;
return false;
}

absl::variant<absl::monostate, int> MakeVariant() { return {}; }
absl::variant<absl::monostate, int> MakeVariant(int value) { return value; }
std::variant<absl::monostate, int> MakeVariant() { return {}; }
std::variant<absl::monostate, int> MakeVariant(int value) { return value; }

} // namespace test
} // namespace pybind11
Expand Down Expand Up @@ -468,8 +468,8 @@ PYBIND11_MODULE(absl_example, m) {
// absl::optional bindings.
m.def("check_optional", &CheckOptional, arg("optional") = absl::nullopt,
arg("given") = false, arg("value") = 0);
m.def("make_optional", (absl::optional<int>(*)()) & MakeOptional);
m.def("make_optional", (absl::optional<int>(*)(int)) & MakeOptional,
m.def("make_optional", (std::optional<int> (*)())&MakeOptional);
m.def("make_optional", (std::optional<int> (*)(int))&MakeOptional,
arg("value"));

// absl::flat_hash_map bindings
Expand Down Expand Up @@ -501,12 +501,11 @@ PYBIND11_MODULE(absl_example, m) {
m.def("IdentityWithCopy", &IdentityWithCopy);

m.def("check_variant", &CheckVariant,
arg("variant") = absl::variant<absl::monostate, int>{},
arg("variant") = std::variant<absl::monostate, int>{},
arg("given") = false, arg("value") = 0);
m.def("make_variant", (std::variant<absl::monostate, int> (*)())&MakeVariant);
m.def("make_variant",
(absl::variant<absl::monostate, int> (*)())&MakeVariant);
m.def("make_variant",
(absl::variant<absl::monostate, int> (*)(int))&MakeVariant,
(std::variant<absl::monostate, int> (*)(int))&MakeVariant,
arg("value"));
}

Expand Down
Loading