diff --git a/include/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp b/include/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp new file mode 100644 index 0000000..4f9796b --- /dev/null +++ b/include/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp @@ -0,0 +1,30 @@ + +// (C) Copyright John Maddock 2018. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_RVALUE_REFERENCE_MSVC10_FIX_HPP_INCLUDED +#define BOOST_TT_IS_RVALUE_REFERENCE_MSVC10_FIX_HPP_INCLUDED + +namespace boost { + +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; +template struct is_rvalue_reference : public true_type {}; + +} // namespace boost + +#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED + diff --git a/include/boost/type_traits/is_rvalue_reference.hpp b/include/boost/type_traits/is_rvalue_reference.hpp index a48edb5..37d33c9 100644 --- a/include/boost/type_traits/is_rvalue_reference.hpp +++ b/include/boost/type_traits/is_rvalue_reference.hpp @@ -21,5 +21,9 @@ template struct is_rvalue_reference : public true_type {}; } // namespace boost +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1700) +#include +#endif + #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED diff --git a/test/tricky_rvalue_test.cpp b/test/tricky_rvalue_test.cpp index 8199edc..c12f6ec 100644 --- a/test/tricky_rvalue_test.cpp +++ b/test/tricky_rvalue_test.cpp @@ -19,20 +19,19 @@ TT_TEST_BEGIN(rvalue_reference_test) -#if !(defined(CI_SUPPRESS_KNOWN_ISSUES) && BOOST_WORKAROUND(BOOST_MSVC, <= 1700)) - #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, true); #if !(defined(CI_SUPPRESS_KNOWN_ISSUES) && BOOST_WORKAROUND(BOOST_GCC, < 40700)) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); #endif #endif -#endif - TT_TEST_END