From 3c5a67e48f8ceefeca19fb7c3100fd5f9acdc2ff Mon Sep 17 00:00:00 2001 From: Nikita Kniazev Date: Sun, 6 Jan 2019 16:49:54 +0300 Subject: [PATCH] Removed EDG 3.2 workaround EDG 3.2 is pretty old (the workaround added 16 years ago). --- .../variant/detail/apply_visitor_binary.hpp | 29 ++----------------- .../variant/detail/apply_visitor_unary.hpp | 28 ++---------------- 2 files changed, 4 insertions(+), 53 deletions(-) diff --git a/include/boost/variant/detail/apply_visitor_binary.hpp b/include/boost/variant/detail/apply_visitor_binary.hpp index 3ee090b..426757c 100644 --- a/include/boost/variant/detail/apply_visitor_binary.hpp +++ b/include/boost/variant/detail/apply_visitor_binary.hpp @@ -14,16 +14,12 @@ #define BOOST_VARIANT_DETAIL_APPLY_VISITOR_BINARY_HPP #include -#include #include #include - -#if BOOST_WORKAROUND(__EDG__, BOOST_TESTED_AT(302)) #include #include -#endif #if !defined(BOOST_NO_CXX14_DECLTYPE_AUTO) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276) # include @@ -181,28 +177,10 @@ private: // nonconst-visitor version: // -#if !BOOST_WORKAROUND(__EDG__, BOOST_TESTED_AT(302)) - -# define BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(V) \ - typename V::result_type \ - /**/ - -#else // EDG-based compilers - -# define BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(V) \ - typename enable_if< \ - mpl::not_< is_const< V > > \ - , typename V::result_type \ - >::type \ - /**/ - -#endif // EDG-based compilers workaround - #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template -inline - BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(Visitor) +inline typename Visitor::result_type apply_visitor( Visitor& visitor, Visitable1&& visitable1, Visitable2&& visitable2) { ::boost::detail::variant::apply_visitor_binary_unwrap< @@ -215,8 +193,7 @@ apply_visitor( Visitor& visitor, Visitable1&& visitable1, Visitable2&& visitable #else template -inline - BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(Visitor) +inline typename Visitor::result_type apply_visitor( Visitor& visitor, Visitable1& visitable1, Visitable2& visitable2) { ::boost::detail::variant::apply_visitor_binary_unwrap< @@ -228,8 +205,6 @@ apply_visitor( Visitor& visitor, Visitable1& visitable1, Visitable2& visitable2) #endif -#undef BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE - // // const-visitor version: // diff --git a/include/boost/variant/detail/apply_visitor_unary.hpp b/include/boost/variant/detail/apply_visitor_unary.hpp index 92bc8e7..2018fd5 100644 --- a/include/boost/variant/detail/apply_visitor_unary.hpp +++ b/include/boost/variant/detail/apply_visitor_unary.hpp @@ -14,15 +14,12 @@ #define BOOST_VARIANT_DETAIL_APPLY_VISITOR_UNARY_HPP #include -#include #include -#if BOOST_WORKAROUND(__EDG__, BOOST_TESTED_AT(302)) #include #include #include #include -#endif #if !defined(BOOST_NO_CXX14_DECLTYPE_AUTO) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276) # include @@ -46,43 +43,22 @@ namespace boost { // nonconst-visitor version: // -#if !BOOST_WORKAROUND(__EDG__, BOOST_TESTED_AT(302)) - -# define BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(V) \ - typename V::result_type \ - /**/ - -#else // EDG-based compilers - -# define BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(V) \ - typename enable_if< \ - mpl::not_< is_const< V > > \ - , typename V::result_type \ - >::type \ - /**/ - -#endif // EDG-based compilers workaround - #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template -inline - BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(Visitor) +inline typename Visitor::result_type apply_visitor(Visitor& visitor, Visitable&& visitable) { return ::boost::forward(visitable).apply_visitor(visitor); } #else template -inline - BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(Visitor) +inline typename Visitor::result_type apply_visitor(Visitor& visitor, Visitable& visitable) { return visitable.apply_visitor(visitor); } #endif -#undef BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE - // // const-visitor version: //