Change-Id: I63a2506d3c028f78cacce8308e2f0e4880531dec
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Andreas Hansson <andreas.hansson@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2230
Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Pierre-Yves PĂ©neau <pierre-yves.peneau@lirmm.fr>
struct nodelete { template <typename T> void operator()(T*) { } };
// overload_cast requires variable templates: C++14 or MSVC 2015 Update 2
-#if defined(PYBIND11_CPP14) || _MSC_FULL_VER >= 190023918
+#if defined(PYBIND11_CPP14) || ( \
+ defined(_MSC_FULL_VER) &&_MSC_FULL_VER >= 190023918)
#define PYBIND11_OVERLOAD_CAST 1
NAMESPACE_BEGIN(detail)
PYBIND11_TYPE_CASTER(T, _("Optional[") + value_conv::name() + _("]"));
};
-#if PYBIND11_HAS_OPTIONAL
+#ifdef PYBIND11_HAS_OPTIONAL
template<typename T> struct type_caster<std::optional<T>>
: public optional_caster<std::optional<T>> {};
: public void_caster<std::nullopt_t> {};
#endif
-#if PYBIND11_HAS_EXP_OPTIONAL
+#ifdef PYBIND11_HAS_EXP_OPTIONAL
template<typename T> struct type_caster<std::experimental::optional<T>>
: public optional_caster<std::experimental::optional<T>> {};