diff options
Diffstat (limited to '3rdParty/Boost/src/boost/type_traits/add_reference.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/type_traits/add_reference.hpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/3rdParty/Boost/src/boost/type_traits/add_reference.hpp b/3rdParty/Boost/src/boost/type_traits/add_reference.hpp index 7dfb4be..eb4f9b1 100644 --- a/3rdParty/Boost/src/boost/type_traits/add_reference.hpp +++ b/3rdParty/Boost/src/boost/type_traits/add_reference.hpp @@ -51,13 +51,31 @@ struct add_reference_impl }; #else +// +// We can't filter out rvalue_references at the same level as +// references or we get ambiguities from msvc: +// template <typename T> -struct add_reference_impl +struct add_reference_rvalue_layer { typedef T& type; }; +#ifndef BOOST_NO_RVALUE_REFERENCES +template <typename T> +struct add_reference_rvalue_layer<T&&> +{ + typedef T&& type; +}; +#endif + +template <typename T> +struct add_reference_impl +{ + typedef typename add_reference_rvalue_layer<T>::type type; +}; + #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&) #endif |