From 79de508ef4781212415f6a2d01014af4bb74198a Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Tue, 13 Dec 2016 19:36:16 -0500 Subject: [PATCH] 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. --- tests/test_python_types.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_python_types.cpp b/tests/test_python_types.cpp index 33c655b5..ae77f820 100644 --- a/tests/test_python_types.cpp +++ b/tests/test_python_types.cpp @@ -327,14 +327,14 @@ test_initializer python_types([](py::module &m) { #ifdef PYBIND11_HAS_EXP_OPTIONAL has_exp_optional = true; - using opt_int = std::experimental::optional; - m.def("double_or_zero_exp", [](const opt_int& x) -> int { + using exp_opt_int = std::experimental::optional; + m.def("double_or_zero_exp", [](const exp_opt_int& x) -> int { return x.value_or(0) * 2; }); - m.def("half_or_none_exp", [](int x) -> opt_int { - return x ? opt_int(x / 2) : opt_int(); + m.def("half_or_none_exp", [](int x) -> exp_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); }, py::arg_v("x", std::experimental::nullopt, "None")); #endif