Fix test compilation when both optional's exist

gcc 7 has both std::experimental::optional and std::optional, but this
breaks the test compilation as we are trying to use the same `opt_int`
type alias for both.
This commit is contained in:
Jason Rhinelander 2016-12-13 19:36:16 -05:00 committed by Wenzel Jakob
parent 12ce07a2c2
commit 79de508ef4

View File

@ -327,14 +327,14 @@ test_initializer python_types([](py::module &m) {
#ifdef PYBIND11_HAS_EXP_OPTIONAL #ifdef PYBIND11_HAS_EXP_OPTIONAL
has_exp_optional = true; has_exp_optional = true;
using opt_int = std::experimental::optional<int>; using exp_opt_int = std::experimental::optional<int>;
m.def("double_or_zero_exp", [](const opt_int& x) -> int { m.def("double_or_zero_exp", [](const exp_opt_int& x) -> int {
return x.value_or(0) * 2; return x.value_or(0) * 2;
}); });
m.def("half_or_none_exp", [](int x) -> opt_int { m.def("half_or_none_exp", [](int x) -> exp_opt_int {
return x ? opt_int(x / 2) : opt_int(); return x ? exp_opt_int(x / 2) : exp_opt_int();
}); });
m.def("test_nullopt_exp", [](opt_int x) { m.def("test_nullopt_exp", [](exp_opt_int x) {
return x.value_or(42); return x.value_or(42);
}, py::arg_v("x", std::experimental::nullopt, "None")); }, py::arg_v("x", std::experimental::nullopt, "None"));
#endif #endif