diff options
Diffstat (limited to '3rdParty/Boost/src/boost/variant/recursive_variant.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/variant/recursive_variant.hpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/3rdParty/Boost/src/boost/variant/recursive_variant.hpp b/3rdParty/Boost/src/boost/variant/recursive_variant.hpp index 071d0f9..cb5eb4c 100644 --- a/3rdParty/Boost/src/boost/variant/recursive_variant.hpp +++ b/3rdParty/Boost/src/boost/variant/recursive_variant.hpp @@ -3,8 +3,8 @@ // See http://www.boost.org for updates, documentation, and revision history. //----------------------------------------------------------------------------- // -// Copyright (c) 2003 -// Eric Friedman +// Copyright (c) 2003 Eric Friedman +// Copyright (c) 2013 Antony Polukhin // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -116,6 +116,23 @@ struct substitute< BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(Arity) > { +#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) + + typedef ::boost::variant< + typename enable_recursive< + T0 + , RecursiveVariant + , mpl::true_ + >::type, + typename enable_recursive< + TN + , RecursiveVariant + , mpl::true_ + >::type... + > type; + +#else // defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) + private: // helpers, for metafunction result (below) #define BOOST_VARIANT_AUX_ENABLE_RECURSIVE_TYPEDEFS(z,N,_) \ @@ -137,6 +154,7 @@ private: // helpers, for metafunction result (below) public: // metafunction result typedef ::boost::variant< BOOST_VARIANT_ENUM_PARAMS(wknd_T) > type; +#endif // BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES workaround }; #else // defined(BOOST_VARIANT_DETAIL_NO_SUBSTITUTE) @@ -176,9 +194,7 @@ struct make_recursive_variant_over { private: // precondition assertions -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) BOOST_STATIC_ASSERT(( ::boost::mpl::is_sequence<Types>::value )); -#endif public: // metafunction result |