diff --git a/include/boost/optional/optional.hpp b/include/boost/optional/optional.hpp index fd7cf73..f059e2e 100644 --- a/include/boost/optional/optional.hpp +++ b/include/boost/optional/optional.hpp @@ -1543,9 +1543,18 @@ struct swap_selector } // namespace optional_detail +#if (!defined BOOST_NO_CXX11_RVALUE_REFERENCES) && (!defined BOOST_CONFIG_RESTORE_OBSOLETE_SWAP_IMPLEMENTATION) + +template +struct optional_swap_should_use_default_constructor : boost::false_type {} ; + +#else + template struct optional_swap_should_use_default_constructor : has_nothrow_default_constructor {} ; +#endif //BOOST_NO_CXX11_RVALUE_REFERENCES + template inline void swap ( optional& x, optional& y ) //BOOST_NOEXCEPT_IF(::boost::is_nothrow_move_constructible::value && BOOST_NOEXCEPT_EXPR(boost::swap(*x, *y))) {