]> git.lyx.org Git - features.git/blobdiff - boost/boost/type_traits/add_reference.hpp
update boost to 1.44
[features.git] / boost / boost / type_traits / add_reference.hpp
index 7dfb4bed89e7dea8414775593595b68fc13e2379..eb4f9b1631a816149c074d34ca9df5476f4a55e1 100644 (file)
@@ -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