From 985ba7d10c938d58fac3b31d94a268c566681d5a Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 10 Dec 2012 18:11:39 +0000 Subject: [PATCH] Merge changes from Trunk. [SVN r81829] --- .../type_traits/add_lvalue_reference.hpp | 2 +- include/boost/type_traits/add_reference.hpp | 2 +- .../type_traits/add_rvalue_reference.hpp | 8 +- include/boost/type_traits/common_type.hpp | 22 ++--- include/boost/type_traits/intrinsics.hpp | 7 +- include/boost/type_traits/is_const.hpp | 2 +- include/boost/type_traits/is_convertible.hpp | 93 +++++++++++++++---- include/boost/type_traits/is_function.hpp | 7 +- include/boost/type_traits/is_integral.hpp | 5 + .../boost/type_traits/is_rvalue_reference.hpp | 2 +- include/boost/type_traits/is_volatile.hpp | 2 +- include/boost/type_traits/make_signed.hpp | 16 ++++ include/boost/type_traits/make_unsigned.hpp | 16 ++++ include/boost/type_traits/remove_const.hpp | 2 +- include/boost/type_traits/remove_cv.hpp | 2 +- .../boost/type_traits/remove_reference.hpp | 2 +- include/boost/type_traits/remove_volatile.hpp | 2 +- test/add_const_test.cpp | 4 +- test/add_cv_test.cpp | 4 +- test/add_lvalue_reference_test.cpp | 4 +- test/add_reference_test.cpp | 4 +- test/add_rvalue_reference_test.cpp | 4 +- test/add_volatile_test.cpp | 4 +- test/common_type_2_test.cpp | 2 +- test/common_type_test.cpp | 2 +- test/extent_test.cpp | 2 +- test/has_nothrow_assign_test.cpp | 2 +- test/has_nothrow_constr_test.cpp | 2 +- test/has_nothrow_copy_test.cpp | 2 +- test/has_operator_new_test.cpp | 2 +- test/has_trivial_assign_test.cpp | 2 +- test/has_trivial_constr_test.cpp | 2 +- test/has_trivial_copy_test.cpp | 2 +- test/has_virtual_destructor_test.cpp | 2 +- test/is_abstract_test.cpp | 2 +- test/is_arithmetic_test.cpp | 2 +- test/is_array_test.cpp | 2 +- test/is_class_test.cpp | 2 +- test/is_const_test.cpp | 2 +- test/is_convertible_test.cpp | 11 ++- test/is_empty_test.cpp | 2 +- test/is_enum_test.cpp | 6 +- test/is_float_test.cpp | 2 +- test/is_floating_point_test.cpp | 2 +- test/is_function_test.cpp | 2 +- test/is_fundamental_test.cpp | 2 +- test/is_integral_test.cpp | 14 ++- test/is_lvalue_reference_test.cpp | 2 +- test/is_object_test.cpp | 2 +- test/is_pod_test.cpp | 2 +- test/is_pointer_test.cpp | 2 +- test/is_polymorphic_test.cpp | 2 +- test/is_reference_test.cpp | 2 +- test/is_rvalue_reference_test.cpp | 2 +- test/is_same_test.cpp | 4 +- test/is_scalar_test.cpp | 2 +- test/is_signed_test.cpp | 6 +- test/is_stateless_test.cpp | 2 +- test/is_union_test.cpp | 2 +- test/is_unsigned_test.cpp | 7 +- test/is_void_test.cpp | 2 +- test/is_volatile_test.cpp | 2 +- test/make_signed_test.cpp | 4 + test/make_unsigned_test.cpp | 4 + test/rank_test.cpp | 2 +- test/remove_all_extents_test.cpp | 4 +- test/remove_bounds_test.cpp | 4 +- test/remove_cv_test.cpp | 4 +- test/remove_extent_test.cpp | 4 +- test/remove_pointer_test.cpp | 4 +- test/remove_reference_test.cpp | 4 +- test/test.hpp | 2 +- test/tricky_add_pointer_test.cpp | 4 +- test/tricky_function_type_test.cpp | 7 ++ test/tricky_partial_spec_test.cpp | 2 +- test/tricky_rvalue_test.cpp | 6 +- 76 files changed, 268 insertions(+), 117 deletions(-) diff --git a/include/boost/type_traits/add_lvalue_reference.hpp b/include/boost/type_traits/add_lvalue_reference.hpp index 4156372..1d75794 100644 --- a/include/boost/type_traits/add_lvalue_reference.hpp +++ b/include/boost/type_traits/add_lvalue_reference.hpp @@ -15,7 +15,7 @@ namespace boost{ BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename boost::add_reference::type) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&) #endif diff --git a/include/boost/type_traits/add_reference.hpp b/include/boost/type_traits/add_reference.hpp index eb4f9b1..f926a53 100644 --- a/include/boost/type_traits/add_reference.hpp +++ b/include/boost/type_traits/add_reference.hpp @@ -62,7 +62,7 @@ struct add_reference_rvalue_layer typedef T& type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct add_reference_rvalue_layer { diff --git a/include/boost/type_traits/add_rvalue_reference.hpp b/include/boost/type_traits/add_rvalue_reference.hpp index f0e9925..92c2c38 100644 --- a/include/boost/type_traits/add_rvalue_reference.hpp +++ b/include/boost/type_traits/add_rvalue_reference.hpp @@ -21,7 +21,7 @@ //----------------------------------------------------------------------------// // // // C++03 implementation of // -// 20.7.6.2 Reference modifications [meta.trans.ref] // +// 20.9.7.2 Reference modifications [meta.trans.ref] // // Written by Vicente J. Botet Escriba // // // // If T names an object or function type then the member typedef type @@ -39,7 +39,7 @@ namespace type_traits_detail { struct add_rvalue_reference_helper { typedef T type; }; -#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) template struct add_rvalue_reference_helper { @@ -49,9 +49,9 @@ namespace type_traits_detail { template struct add_rvalue_reference_imp - { + { typedef typename boost::type_traits_detail::add_rvalue_reference_helper - ::value && !is_reference::value) >::type type; + ::value == false && is_reference::value == false) >::type type; }; } diff --git a/include/boost/type_traits/common_type.hpp b/include/boost/type_traits/common_type.hpp index 2739688..00129d1 100644 --- a/include/boost/type_traits/common_type.hpp +++ b/include/boost/type_traits/common_type.hpp @@ -19,18 +19,18 @@ #endif //----------------------------------------------------------------------------// -#if defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY) +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY) #define BOOST_COMMON_TYPE_ARITY 3 #endif //----------------------------------------------------------------------------// -#if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) && !defined(BOOST_TYPEOF_SILENT) +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) && !defined(BOOST_TYPEOF_SILENT) #define BOOST_TYPEOF_SILENT #include // boost wonders never cease! #endif //----------------------------------------------------------------------------// -#ifndef BOOST_NO_STATIC_ASSERT +#ifndef BOOST_NO_CXX11_STATIC_ASSERT #define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG) #elif defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT) #include @@ -42,11 +42,11 @@ #define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) BOOST_STATIC_ASSERT(CND) #endif -#if !defined(BOOST_NO_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT) +#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT) #define BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type" #endif -#if defined(BOOST_NO_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) +#if defined(BOOST_NO_CXX11_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) #include #include #endif @@ -57,7 +57,7 @@ //----------------------------------------------------------------------------// // // // C++03 implementation of // -// 20.6.7 Other transformations [meta.trans.other] // +// 20.9.7.6 Other transformations [meta.trans.other] // // Written by Howard Hinnant // // Adapted for Boost by Beman Dawes, Vicente Botet and Jeffrey Hellrung // // // @@ -66,7 +66,7 @@ namespace boost { // prototype -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct common_type; #else // or no specialization @@ -81,7 +81,7 @@ namespace boost { // 1 arg template -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) struct common_type #else struct common_type @@ -107,7 +107,7 @@ namespace type_traits_detail { static typename add_rvalue_reference::type declval_U(); // workaround gcc bug; not required by std static typename add_rvalue_reference::type declval_b(); -#if !defined(BOOST_NO_DECLTYPE) +#if !defined(BOOST_NO_CXX11_DECLTYPE) public: typedef decltype(declval() ? declval() : declval()) type; #elif defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) @@ -134,7 +134,7 @@ namespace type_traits_detail { }; } -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct common_type #else @@ -146,7 +146,7 @@ namespace type_traits_detail { // 3 or more args -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct common_type { public: diff --git a/include/boost/type_traits/intrinsics.hpp b/include/boost/type_traits/intrinsics.hpp index 8408ec3..1799240 100644 --- a/include/boost/type_traits/intrinsics.hpp +++ b/include/boost/type_traits/intrinsics.hpp @@ -79,8 +79,10 @@ # define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif -#if defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215) +#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\ + || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500)) # include +# include # define BOOST_IS_UNION(T) __is_union(T) # define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T)) @@ -97,7 +99,7 @@ # define BOOST_IS_ABSTRACT(T) __is_abstract(T) # define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) # define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || is_same::value) && !__is_abstract(U)) +# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same::value && !is_function::value)) && !__is_abstract(U)) # define BOOST_IS_ENUM(T) __is_enum(T) // This one doesn't quite always do the right thing: // # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) @@ -287,3 +289,4 @@ + diff --git a/include/boost/type_traits/is_const.hpp b/include/boost/type_traits/is_const.hpp index f24b71a..0c7da4a 100644 --- a/include/boost/type_traits/is_const.hpp +++ b/include/boost/type_traits/is_const.hpp @@ -64,7 +64,7 @@ struct is_const_rvalue_filter BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp::is_const); #endif }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct is_const_rvalue_filter { diff --git a/include/boost/type_traits/is_convertible.hpp b/include/boost/type_traits/is_convertible.hpp index 0d42c46..bd7843a 100644 --- a/include/boost/type_traits/is_convertible.hpp +++ b/include/boost/type_traits/is_convertible.hpp @@ -17,17 +17,17 @@ #include #include #include -#include #include #include #include #ifndef BOOST_NO_IS_ABSTRACT #include #endif +#include #include +#include #if defined(__MWERKS__) -#include #include #endif @@ -69,7 +69,7 @@ struct does_conversion_exist { static no_type BOOST_TT_DECL _m_check(...); static yes_type BOOST_TT_DECL _m_check(To); - static typename add_rvalue_reference::type _m_from; + static typename add_lvalue_reference::type _m_from; enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) }; }; }; @@ -107,7 +107,7 @@ struct is_convertible_impl static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T); }; - static typename add_rvalue_reference::type _m_from; + static typename add_lvalue_reference::type _m_from; static bool const value = sizeof( checker::_m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type); #pragma option pop @@ -120,6 +120,8 @@ struct is_convertible_impl struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); template any_conversion(T&); }; @@ -132,9 +134,18 @@ template struct checker template struct is_convertible_basic_impl { - static typename add_rvalue_reference::type _m_from; - static bool const value = sizeof( boost::detail::checker::_m_check(_m_from, 0) ) + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))) + static bool const value = + sizeof( boost::detail::checker::_m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type); +#else + static bool const value = + sizeof( boost::detail::checker::_m_check(_m_from, 0) ) + == sizeof(::boost::type_traits::yes_type); +#endif }; #elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \ @@ -152,6 +163,8 @@ struct is_convertible_basic_impl struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); // we need this constructor to catch references to functions // (which can not be cv-qualified): template any_conversion(T&); @@ -162,11 +175,19 @@ struct is_convertible_basic_impl { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) ); +#endif }; #elif defined(__DMC__) @@ -174,6 +195,8 @@ struct is_convertible_basic_impl struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); // we need this constructor to catch references to functions // (which can not be cv-qualified): template any_conversion(T&); @@ -186,13 +209,21 @@ struct is_convertible_basic_impl template static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; // Static constants sometime cause the conversion of _m_from to To to be // called. This doesn't happen with an enum. +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + enum { value = + sizeof( _m_check(static_cast(_m_from), 0, 0) ) == sizeof(::boost::type_traits::yes_type) + }; +#else enum { value = sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type) }; +#endif }; #elif defined(__MWERKS__) @@ -209,6 +240,9 @@ struct is_convertible_basic_impl_aux; struct any_conversion { template any_conversion(const volatile T&); + template any_conversion(const T&); + template any_conversion(volatile T&); + template any_conversion(T&); }; template @@ -216,11 +250,19 @@ struct is_convertible_basic_impl_aux { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) ); +#endif }; template @@ -228,10 +270,18 @@ struct is_convertible_basic_impl_aux { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from)) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) ); +#endif }; template @@ -243,7 +293,6 @@ struct is_convertible_basic_impl: {}; #else - // // This version seems to work pretty well for a wide spectrum of compilers, // however it does rely on undefined behaviour by passing UDT's through (...). @@ -253,7 +302,9 @@ struct is_convertible_basic_impl { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); - static typename add_rvalue_reference::type _m_from; + typedef typename add_lvalue_reference::type lvalue_type; + typedef typename add_rvalue_reference::type rvalue_type; + static lvalue_type _m_from; #ifdef BOOST_MSVC #pragma warning(push) #pragma warning(disable:4244) @@ -261,9 +312,15 @@ struct is_convertible_basic_impl #pragma warning(disable:6334) #endif #endif +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(static_cast(_m_from)) ) == sizeof(::boost::type_traits::yes_type) + ); +#else BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) ); +#endif #ifdef BOOST_MSVC #pragma warning(pop) #endif @@ -276,15 +333,17 @@ struct is_convertible_basic_impl template struct is_convertible_impl { - typedef typename add_reference::type ref_type; enum { value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< - ::boost::detail::is_convertible_basic_impl::value, + ::boost::detail::is_convertible_basic_impl::value, ::boost::is_void::value >::value, ::boost::type_traits::ice_not< ::boost::is_array::value + >::value, + ::boost::type_traits::ice_not< + ::boost::is_function::value >::value >::value) }; }; @@ -292,15 +351,17 @@ struct is_convertible_impl template struct is_convertible_impl { - typedef typename add_reference::type ref_type; BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< - ::boost::detail::is_convertible_basic_impl::value, + ::boost::detail::is_convertible_basic_impl::value, ::boost::is_void::value >::value, ::boost::type_traits::ice_not< ::boost::is_array::value + >::value, + ::boost::type_traits::ice_not< + ::boost::is_function::value >::value >::value) ); diff --git a/include/boost/type_traits/is_function.hpp b/include/boost/type_traits/is_function.hpp index 2cb1bb9..cd80e74 100644 --- a/include/boost/type_traits/is_function.hpp +++ b/include/boost/type_traits/is_function.hpp @@ -83,6 +83,11 @@ struct is_function_impl template struct is_function_impl : public false_type {}; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +template +struct is_function_impl : public false_type +{}; +#endif #endif #endif @@ -95,7 +100,7 @@ struct is_function_impl : public false_type BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T)) #else BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl::value) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_function,T&&,false) #endif #endif diff --git a/include/boost/type_traits/is_integral.hpp b/include/boost/type_traits/is_integral.hpp index 99420a9..b5089ec 100644 --- a/include/boost/type_traits/is_integral.hpp +++ b/include/boost/type_traits/is_integral.hpp @@ -68,6 +68,11 @@ BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true) #endif + +#ifdef BOOST_HAS_INT128 +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::int128_type,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::uint128_type,true) +#endif #endif // non-CodeGear implementation diff --git a/include/boost/type_traits/is_rvalue_reference.hpp b/include/boost/type_traits/is_rvalue_reference.hpp index cac2ee0..93cd0bf 100644 --- a/include/boost/type_traits/is_rvalue_reference.hpp +++ b/include/boost/type_traits/is_rvalue_reference.hpp @@ -17,7 +17,7 @@ namespace boost { BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true) #endif diff --git a/include/boost/type_traits/is_volatile.hpp b/include/boost/type_traits/is_volatile.hpp index 863747d..c921c9e 100644 --- a/include/boost/type_traits/is_volatile.hpp +++ b/include/boost/type_traits/is_volatile.hpp @@ -51,7 +51,7 @@ struct is_volatile_rval_filter BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp::is_volatile); #endif }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: diff --git a/include/boost/type_traits/make_signed.hpp b/include/boost/type_traits/make_signed.hpp index 51cfd95..7deb855 100644 --- a/include/boost/type_traits/make_signed.hpp +++ b/include/boost/type_traits/make_signed.hpp @@ -72,7 +72,15 @@ struct make_signed_imp is_same, long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::long_long_type), + boost::long_long_type, + boost::int128_type + >::type +#else boost::long_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) __int64 #else @@ -96,7 +104,15 @@ struct make_signed_imp sizeof(t_no_cv) == sizeof(unsigned long), long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::long_long_type), + boost::long_long_type, + boost::int128_type + >::type +#else boost::long_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) __int64 #else diff --git a/include/boost/type_traits/make_unsigned.hpp b/include/boost/type_traits/make_unsigned.hpp index 54f9f66..7e2fcdc 100644 --- a/include/boost/type_traits/make_unsigned.hpp +++ b/include/boost/type_traits/make_unsigned.hpp @@ -72,7 +72,15 @@ struct make_unsigned_imp is_same, unsigned long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::ulong_long_type), + boost::ulong_long_type, + boost::uint128_type + >::type +#else boost::ulong_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) unsigned __int64 #else @@ -96,7 +104,15 @@ struct make_unsigned_imp sizeof(t_no_cv) == sizeof(unsigned long), unsigned long, #if defined(BOOST_HAS_LONG_LONG) +#ifdef BOOST_HAS_INT128 + typename mpl::if_c< + sizeof(t_no_cv) == sizeof(boost::ulong_long_type), + boost::ulong_long_type, + boost::uint128_type + >::type +#else boost::ulong_long_type +#endif #elif defined(BOOST_HAS_MS_INT64) unsigned __int64 #else diff --git a/include/boost/type_traits/remove_const.hpp b/include/boost/type_traits/remove_const.hpp index f4d1739..5f957e9 100644 --- a/include/boost/type_traits/remove_const.hpp +++ b/include/boost/type_traits/remove_const.hpp @@ -54,7 +54,7 @@ struct remove_const_impl >::type type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: diff --git a/include/boost/type_traits/remove_cv.hpp b/include/boost/type_traits/remove_cv.hpp index ee6d8f9..7478c20 100644 --- a/include/boost/type_traits/remove_cv.hpp +++ b/include/boost/type_traits/remove_cv.hpp @@ -37,7 +37,7 @@ struct rvalue_ref_filter_rem_cv typedef typename boost::detail::cv_traits_imp::unqualified_type type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: diff --git a/include/boost/type_traits/remove_reference.hpp b/include/boost/type_traits/remove_reference.hpp index f453086..19a55b7 100644 --- a/include/boost/type_traits/remove_reference.hpp +++ b/include/boost/type_traits/remove_reference.hpp @@ -34,7 +34,7 @@ struct remove_rvalue_ref { typedef T type; }; -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct remove_rvalue_ref { diff --git a/include/boost/type_traits/remove_volatile.hpp b/include/boost/type_traits/remove_volatile.hpp index 073a2a3..98da5cf 100644 --- a/include/boost/type_traits/remove_volatile.hpp +++ b/include/boost/type_traits/remove_volatile.hpp @@ -57,7 +57,7 @@ struct remove_volatile_impl // We can't filter out rvalue_references at the same level as // references or we get ambiguities from msvc: // -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES template struct remove_volatile_impl { diff --git a/test/add_const_test.cpp b/test/add_const_test.cpp index f61aef8..b91535b 100644 --- a/test/add_const_test.cpp +++ b/test/add_const_test.cpp @@ -21,7 +21,7 @@ BOOST_DECL_TRANSFORM_TEST(add_const_test_10, ::tt::add_const, const*, const*cons BOOST_DECL_TRANSFORM_TEST(add_const_test_11, ::tt::add_const, volatile*, volatile*const) BOOST_DECL_TRANSFORM_TEST(add_const_test_5, ::tt::add_const, const &, const&) BOOST_DECL_TRANSFORM_TEST(add_const_test_6, ::tt::add_const, &, &) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_const_test_5a, ::tt::add_const, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(add_const_test_6a, ::tt::add_const, &&, &&) #endif @@ -45,7 +45,7 @@ TT_TEST_BEGIN(add_const) add_const_test_9(); add_const_test_12(); add_const_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_const_test_5a(); add_const_test_6a(); #endif diff --git a/test/add_cv_test.cpp b/test/add_cv_test.cpp index 45244a7..c1f4353 100644 --- a/test/add_cv_test.cpp +++ b/test/add_cv_test.cpp @@ -21,7 +21,7 @@ BOOST_DECL_TRANSFORM_TEST(add_cv_test_10, ::tt::add_cv, const*, const*const vola BOOST_DECL_TRANSFORM_TEST(add_cv_test_11, ::tt::add_cv, volatile*, volatile*const volatile ) BOOST_DECL_TRANSFORM_TEST(add_cv_test_5, ::tt::add_cv, const &, const&) BOOST_DECL_TRANSFORM_TEST(add_cv_test_6, ::tt::add_cv, &, &) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_cv_test_5a, ::tt::add_cv, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(add_cv_test_6a, ::tt::add_cv, &&, &&) #endif @@ -45,7 +45,7 @@ TT_TEST_BEGIN(add_const) add_cv_test_9(); add_cv_test_12(); add_cv_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_cv_test_5a(); add_cv_test_6a(); #endif diff --git a/test/add_lvalue_reference_test.cpp b/test/add_lvalue_reference_test.cpp index 18931b9..1a9c1cb 100644 --- a/test/add_lvalue_reference_test.cpp +++ b/test/add_lvalue_reference_test.cpp @@ -25,7 +25,7 @@ BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_10, ::tt::add_lvalue_referen BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_11, ::tt::add_lvalue_reference, volatile*, volatile*&) BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_12, ::tt::add_lvalue_reference, const[2][3], const (&)[2][3]) BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_13, ::tt::add_lvalue_reference, (&)[2], (&)[2]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_5a, ::tt::add_lvalue_reference, const &&, const&) BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_6a, ::tt::add_lvalue_reference, &&, &) BOOST_DECL_TRANSFORM_TEST(add_lvalue_reference_test_13a, ::tt::add_lvalue_reference, (&&)[2], (&)[2]) @@ -46,7 +46,7 @@ TT_TEST_BEGIN(add_lvalue_reference) add_lvalue_reference_test_11(); add_lvalue_reference_test_12(); add_lvalue_reference_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_lvalue_reference_test_5a(); add_lvalue_reference_test_6a(); add_lvalue_reference_test_13a(); diff --git a/test/add_reference_test.cpp b/test/add_reference_test.cpp index 5e47dd2..458ceb5 100644 --- a/test/add_reference_test.cpp +++ b/test/add_reference_test.cpp @@ -25,7 +25,7 @@ BOOST_DECL_TRANSFORM_TEST(add_reference_test_10, ::tt::add_reference, const*, co BOOST_DECL_TRANSFORM_TEST(add_reference_test_11, ::tt::add_reference, volatile*, volatile*&) BOOST_DECL_TRANSFORM_TEST(add_reference_test_12, ::tt::add_reference, const[2][3], const (&)[2][3]) BOOST_DECL_TRANSFORM_TEST(add_reference_test_13, ::tt::add_reference, (&)[2], (&)[2]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_reference_test_5a, ::tt::add_reference, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(add_reference_test_6a, ::tt::add_reference, &&, &&) BOOST_DECL_TRANSFORM_TEST(add_reference_test_13a, ::tt::add_reference, (&&)[2], (&&)[2]) @@ -46,7 +46,7 @@ TT_TEST_BEGIN(add_reference) add_reference_test_11(); add_reference_test_12(); add_reference_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_reference_test_5a(); add_reference_test_6a(); add_reference_test_13a(); diff --git a/test/add_rvalue_reference_test.cpp b/test/add_rvalue_reference_test.cpp index 8527094..92c6cc8 100644 --- a/test/add_rvalue_reference_test.cpp +++ b/test/add_rvalue_reference_test.cpp @@ -12,7 +12,7 @@ # include #endif -#ifdef BOOST_NO_RVALUE_REFERENCES +#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_rvalue_reference_test_1, ::tt::add_rvalue_reference, const, const) BOOST_DECL_TRANSFORM_TEST(add_rvalue_reference_test_2, ::tt::add_rvalue_reference, volatile, volatile) @@ -63,7 +63,7 @@ TT_TEST_BEGIN(add_rvalue_reference) add_rvalue_reference_test_11(); add_rvalue_reference_test_12(); add_rvalue_reference_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_rvalue_reference_test_5a(); add_rvalue_reference_test_6a(); add_rvalue_reference_test_13a(); diff --git a/test/add_volatile_test.cpp b/test/add_volatile_test.cpp index a9d5161..cc9aeed 100644 --- a/test/add_volatile_test.cpp +++ b/test/add_volatile_test.cpp @@ -21,7 +21,7 @@ BOOST_DECL_TRANSFORM_TEST(add_volatile_test_10, ::tt::add_volatile, const*, cons BOOST_DECL_TRANSFORM_TEST(add_volatile_test_11, ::tt::add_volatile, volatile*, volatile*volatile) BOOST_DECL_TRANSFORM_TEST(add_volatile_test_5, ::tt::add_volatile, const &, const&) BOOST_DECL_TRANSFORM_TEST(add_volatile_test_6, ::tt::add_volatile, &, &) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_volatile_test_6a, ::tt::add_volatile, &&, &&) #endif BOOST_DECL_TRANSFORM_TEST(add_volatile_test_8, ::tt::add_volatile, const [2], const volatile [2]) @@ -44,7 +44,7 @@ TT_TEST_BEGIN(add_volatile) add_volatile_test_9(); add_volatile_test_12(); add_volatile_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_volatile_test_6a(); #endif diff --git a/test/common_type_2_test.cpp b/test/common_type_2_test.cpp index c76c2ef..99ada63 100644 --- a/test/common_type_2_test.cpp +++ b/test/common_type_2_test.cpp @@ -92,7 +92,7 @@ TT_TEST_BEGIN(common_type) typedef tt::common_type::type T1; typedef tt::common_type::type T2; typedef tt::common_type::type T3; -#if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) // fails if BOOST_COMMON_TYPE_DONT_USE_TYPEOF: typedef tt::common_type::type T4; #endif diff --git a/test/common_type_test.cpp b/test/common_type_test.cpp index bd1a54a..87a43e5 100644 --- a/test/common_type_test.cpp +++ b/test/common_type_test.cpp @@ -89,7 +89,7 @@ TT_TEST_BEGIN(common_type) typedef tt::common_type::type T1; typedef tt::common_type::type T2; typedef tt::common_type::type T3; -#if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) // fails if BOOST_COMMON_TYPE_DONT_USE_TYPEOF: typedef tt::common_type::type T4; #endif diff --git a/test/extent_test.cpp b/test/extent_test.cpp index 6e5b699..007896c 100644 --- a/test/extent_test.cpp +++ b/test/extent_test.cpp @@ -34,7 +34,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent::value), 0); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent::value, 0); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent::value, 0); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent::value, 0); #endif diff --git a/test/has_nothrow_assign_test.cpp b/test/has_nothrow_assign_test.cpp index 1bcf3ac..ec3d110 100644 --- a/test/has_nothrow_assign_test.cpp +++ b/test/has_nothrow_assign_test.cpp @@ -184,7 +184,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign::value, false); diff --git a/test/has_nothrow_constr_test.cpp b/test/has_nothrow_constr_test.cpp index 94bce1e..4ac8032 100644 --- a/test/has_nothrow_constr_test.cpp +++ b/test/has_nothrow_constr_test.cpp @@ -142,7 +142,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor::value, false); diff --git a/test/has_nothrow_copy_test.cpp b/test/has_nothrow_copy_test.cpp index 8b993f9..9c6c8df 100644 --- a/test/has_nothrow_copy_test.cpp +++ b/test/has_nothrow_copy_test.cpp @@ -181,7 +181,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, false); diff --git a/test/has_operator_new_test.cpp b/test/has_operator_new_test.cpp index da57e48..5d24350 100644 --- a/test/has_operator_new_test.cpp +++ b/test/has_operator_new_test.cpp @@ -188,7 +188,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_new_operator::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_new_operator::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_new_operator::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_new_operator::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_new_operator::value, false); diff --git a/test/has_trivial_assign_test.cpp b/test/has_trivial_assign_test.cpp index 39b1716..cc8ad45 100644 --- a/test/has_trivial_assign_test.cpp +++ b/test/has_trivial_assign_test.cpp @@ -176,7 +176,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign::value, false); diff --git a/test/has_trivial_constr_test.cpp b/test/has_trivial_constr_test.cpp index cc2d4c0..e163a6b 100644 --- a/test/has_trivial_constr_test.cpp +++ b/test/has_trivial_constr_test.cpp @@ -142,7 +142,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor::value, false); diff --git a/test/has_trivial_copy_test.cpp b/test/has_trivial_copy_test.cpp index 85e9d0d..6ed8df8 100644 --- a/test/has_trivial_copy_test.cpp +++ b/test/has_trivial_copy_test.cpp @@ -177,7 +177,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy::value, false); diff --git a/test/has_virtual_destructor_test.cpp b/test/has_virtual_destructor_test.cpp index ea5f323..5f03ac5 100644 --- a/test/has_virtual_destructor_test.cpp +++ b/test/has_virtual_destructor_test.cpp @@ -41,7 +41,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor::value, fa BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor::value, false); diff --git a/test/is_abstract_test.cpp b/test/is_abstract_test.cpp index 17c7bd2..d82d5ec 100644 --- a/test/is_abstract_test.cpp +++ b/test/is_abstract_test.cpp @@ -226,7 +226,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); diff --git a/test/is_arithmetic_test.cpp b/test/is_arithmetic_test.cpp index 77fdc8b..68b5e73 100644 --- a/test/is_arithmetic_test.cpp +++ b/test/is_arithmetic_test.cpp @@ -136,7 +136,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic::value, false); diff --git a/test/is_array_test.cpp b/test/is_array_test.cpp index 3161906..cd89c9f 100644 --- a/test/is_array_test.cpp +++ b/test/is_array_test.cpp @@ -32,7 +32,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array::value, true BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array::value, false); diff --git a/test/is_class_test.cpp b/test/is_class_test.cpp index 6dd33d7..3c67d5f 100644 --- a/test/is_class_test.cpp +++ b/test/is_class_test.cpp @@ -23,7 +23,7 @@ TT_TEST_BEGIN(is_class) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class::value, false); diff --git a/test/is_const_test.cpp b/test/is_const_test.cpp index 856da5c..3280ea4 100644 --- a/test/is_const_test.cpp +++ b/test/is_const_test.cpp @@ -23,7 +23,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const::value, false); diff --git a/test/is_convertible_test.cpp b/test/is_convertible_test.cpp index 7c04e91..6378a18 100644 --- a/test/is_convertible_test.cpp +++ b/test/is_convertible_test.cpp @@ -24,7 +24,7 @@ struct base2 { }; struct middle2 : public virtual base2 { }; struct derived2 : public middle2 { }; -#if !defined(BOOST_NO_RVALUE_REFERENCES) +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) template struct test_bug_4530 @@ -100,8 +100,13 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); +#if !defined(__GNUC__) || ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))) +// Machinary required to support this, not available prior to gcc-4.7.0: +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), false); +#endif #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); @@ -177,7 +182,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,char>::value), true) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,float>::value), true); #endif -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES // Test bug case 4530: BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible,A4530>::value), true); #endif diff --git a/test/is_empty_test.cpp b/test/is_empty_test.cpp index 83da327..a398c3c 100644 --- a/test/is_empty_test.cpp +++ b/test/is_empty_test.cpp @@ -24,7 +24,7 @@ TT_TEST_BEGIN(is_empty) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty::value, false); diff --git a/test/is_enum_test.cpp b/test/is_enum_test.cpp index ddf3995..624d523 100644 --- a/test/is_enum_test.cpp +++ b/test/is_enum_test.cpp @@ -12,7 +12,7 @@ # include #endif -#ifndef BOOST_NO_SCOPED_ENUMS +#ifndef BOOST_NO_CXX11_SCOPED_ENUMS enum class test_enum { @@ -27,13 +27,13 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, false); -#ifndef BOOST_NO_SCOPED_ENUMS +#ifndef BOOST_NO_CXX11_SCOPED_ENUMS BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum::value, true); #endif diff --git a/test/is_float_test.cpp b/test/is_float_test.cpp index 4deaa2c..5cd8865 100644 --- a/test/is_float_test.cpp +++ b/test/is_float_test.cpp @@ -39,7 +39,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float::value, false); diff --git a/test/is_floating_point_test.cpp b/test/is_floating_point_test.cpp index 8b7bb63..3b70b5f 100644 --- a/test/is_floating_point_test.cpp +++ b/test/is_floating_point_test.cpp @@ -39,7 +39,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point::value, false); diff --git a/test/is_function_test.cpp b/test/is_function_test.cpp index 902f94a..67cdca7 100644 --- a/test/is_function_test.cpp +++ b/test/is_function_test.cpp @@ -30,7 +30,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function::value, false); #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function::value, false); #endif #else diff --git a/test/is_fundamental_test.cpp b/test/is_fundamental_test.cpp index 6eee342..ca2a6b8 100644 --- a/test/is_fundamental_test.cpp +++ b/test/is_fundamental_test.cpp @@ -140,7 +140,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental::value, false); diff --git a/test/is_integral_test.cpp b/test/is_integral_test.cpp index 445e941..c466c9b 100644 --- a/test/is_integral_test.cpp +++ b/test/is_integral_test.cpp @@ -112,6 +112,18 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int64 const volatile>::value, #endif +#ifdef BOOST_HAS_INT128 + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, true); + +#endif // // cases that should not be true: // @@ -122,7 +134,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral::value, false); diff --git a/test/is_lvalue_reference_test.cpp b/test/is_lvalue_reference_test.cpp index 513df43..a14b9f6 100644 --- a/test/is_lvalue_reference_test.cpp +++ b/test/is_lvalue_reference_test.cpp @@ -35,7 +35,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_lvalue_reference::value, false); diff --git a/test/is_object_test.cpp b/test/is_object_test.cpp index 1be06d6..3288999 100644 --- a/test/is_object_test.cpp +++ b/test/is_object_test.cpp @@ -17,7 +17,7 @@ TT_TEST_BEGIN(is_object) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object::value, false); diff --git a/test/is_pod_test.cpp b/test/is_pod_test.cpp index c9d3135..1fca2d5 100644 --- a/test/is_pod_test.cpp +++ b/test/is_pod_test.cpp @@ -142,7 +142,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod::value, false); diff --git a/test/is_pointer_test.cpp b/test/is_pointer_test.cpp index 6e4ea07..5b71b92 100644 --- a/test/is_pointer_test.cpp +++ b/test/is_pointer_test.cpp @@ -16,7 +16,7 @@ TT_TEST_BEGIN(is_pointer) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer::value, true); diff --git a/test/is_polymorphic_test.cpp b/test/is_polymorphic_test.cpp index b49c606..c73a1d5 100644 --- a/test/is_polymorphic_test.cpp +++ b/test/is_polymorphic_test.cpp @@ -32,7 +32,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic::value, false); diff --git a/test/is_reference_test.cpp b/test/is_reference_test.cpp index aa5ed7f..4e561a4 100644 --- a/test/is_reference_test.cpp +++ b/test/is_reference_test.cpp @@ -35,7 +35,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference::value, true); diff --git a/test/is_rvalue_reference_test.cpp b/test/is_rvalue_reference_test.cpp index 4c4bd10..0804c43 100644 --- a/test/is_rvalue_reference_test.cpp +++ b/test/is_rvalue_reference_test.cpp @@ -34,7 +34,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_rvalue_reference::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 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); diff --git a/test/is_same_test.cpp b/test/is_same_test.cpp index 6f30cf7..4b40f92 100644 --- a/test/is_same_test.cpp +++ b/test/is_same_test.cpp @@ -16,12 +16,12 @@ TT_TEST_BEGIN(is_same) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), true); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), true); #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), false); #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same::value), false); diff --git a/test/is_scalar_test.cpp b/test/is_scalar_test.cpp index 06c6914..116db1f 100644 --- a/test/is_scalar_test.cpp +++ b/test/is_scalar_test.cpp @@ -144,7 +144,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar::value, false); diff --git a/test/is_signed_test.cpp b/test/is_signed_test.cpp index 7e1a9a1..c76a97a 100644 --- a/test/is_signed_test.cpp +++ b/test/is_signed_test.cpp @@ -25,12 +25,16 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); +#ifdef BOOST_HAS_INT128 +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed::value, false); +#endif TT_TEST_END diff --git a/test/is_stateless_test.cpp b/test/is_stateless_test.cpp index ab3381c..ed5f1dd 100644 --- a/test/is_stateless_test.cpp +++ b/test/is_stateless_test.cpp @@ -142,7 +142,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless::value, false); diff --git a/test/is_union_test.cpp b/test/is_union_test.cpp index b021b29..9d3f37d 100644 --- a/test/is_union_test.cpp +++ b/test/is_union_test.cpp @@ -22,7 +22,7 @@ TT_TEST_BEGIN(is_union) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union::value, false); diff --git a/test/is_unsigned_test.cpp b/test/is_unsigned_test.cpp index 68c2574..484c11e 100644 --- a/test/is_unsigned_test.cpp +++ b/test/is_unsigned_test.cpp @@ -25,12 +25,17 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, false); #endif BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, false); +#ifdef BOOST_HAS_INT128 +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned::value, true); +#endif + TT_TEST_END diff --git a/test/is_void_test.cpp b/test/is_void_test.cpp index 687fa40..c0a3f09 100644 --- a/test/is_void_test.cpp +++ b/test/is_void_test.cpp @@ -29,7 +29,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void::value, false); #endif diff --git a/test/is_volatile_test.cpp b/test/is_volatile_test.cpp index 1ce20f8..7708d63 100644 --- a/test/is_volatile_test.cpp +++ b/test/is_volatile_test.cpp @@ -34,7 +34,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile::value, true); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile::value, false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile::value, false); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile::value, false); #endif diff --git a/test/make_signed_test.cpp b/test/make_signed_test.cpp index af08bd5..cb9da2d 100644 --- a/test/make_signed_test.cpp +++ b/test/make_signed_test.cpp @@ -95,6 +95,10 @@ BOOST_CHECK_TYPE(::tt::make_signed::type, #elif defined(BOOST_HAS_MS_INT64) BOOST_CHECK_TYPE(::tt::make_signed::type, const volatile __int64); #endif +#ifdef BOOST_HAS_INT128 +BOOST_CHECK_TYPE(::tt::make_signed::type, boost::int128_type); +BOOST_CHECK_TYPE(::tt::make_signed::type, boost::int128_type); +#endif // character types: BOOST_CHECK_TYPE(::tt::make_signed::type, signed char); diff --git a/test/make_unsigned_test.cpp b/test/make_unsigned_test.cpp index 2ffe1b9..117a8e6 100644 --- a/test/make_unsigned_test.cpp +++ b/test/make_unsigned_test.cpp @@ -95,6 +95,10 @@ BOOST_CHECK_TYPE(::tt::make_unsigned::typ #elif defined(BOOST_HAS_MS_INT64) BOOST_CHECK_TYPE(::tt::make_unsigned::type, const volatile unsigned __int64); #endif +#ifdef BOOST_HAS_INT128 +BOOST_CHECK_TYPE(::tt::make_unsigned::type, boost::uint128_type); +BOOST_CHECK_TYPE(::tt::make_unsigned::type, boost::uint128_type); +#endif // character types: BOOST_CHECK_TYPE(::tt::make_unsigned::type, unsigned char); diff --git a/test/rank_test.cpp b/test/rank_test.cpp index 049c311..2da7b64 100644 --- a/test/rank_test.cpp +++ b/test/rank_test.cpp @@ -21,7 +21,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank::value, 2); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank::value, 3); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank::value, 0); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank::value, 0); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank::value, 0); #endif diff --git a/test/remove_all_extents_test.cpp b/test/remove_all_extents_test.cpp index 609d3e5..fe0d2d7 100644 --- a/test/remove_all_extents_test.cpp +++ b/test/remove_all_extents_test.cpp @@ -28,7 +28,7 @@ BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_13, ::tt::remove_all_extents, BOOST_DECL_TRANSFORM_TEST3(remove_all_extents_test_14, ::tt::remove_all_extents, []) BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_15, ::tt::remove_all_extents, const [], const) BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_16, ::tt::remove_all_extents, const[][3], const) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_5a, ::tt::remove_all_extents, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_13a, ::tt::remove_all_extents, (&&)[2], (&&)[2]) #endif @@ -51,7 +51,7 @@ TT_TEST_BEGIN(remove_all_extents) remove_all_extents_test_14(); remove_all_extents_test_15(); remove_all_extents_test_16(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES remove_all_extents_test_5a(); remove_all_extents_test_13a(); #endif diff --git a/test/remove_bounds_test.cpp b/test/remove_bounds_test.cpp index 9929f14..cf0ab09 100644 --- a/test/remove_bounds_test.cpp +++ b/test/remove_bounds_test.cpp @@ -28,7 +28,7 @@ BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_13, ::tt::remove_bounds, (&)[2], (& BOOST_DECL_TRANSFORM_TEST3(remove_bounds_test_14, ::tt::remove_bounds, []) BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_15, ::tt::remove_bounds, const [], const) BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_16, ::tt::remove_bounds, const[][3], const[3]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_5a, ::tt::remove_bounds, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_13a, ::tt::remove_bounds, (&&)[2], (&&)[2]) #endif @@ -51,7 +51,7 @@ TT_TEST_BEGIN(remove_bounds) remove_bounds_test_14(); remove_bounds_test_15(); remove_bounds_test_16(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES remove_bounds_test_5a(); remove_bounds_test_13a(); #endif diff --git a/test/remove_cv_test.cpp b/test/remove_cv_test.cpp index 869e25a..946f5e5 100644 --- a/test/remove_cv_test.cpp +++ b/test/remove_cv_test.cpp @@ -29,7 +29,7 @@ BOOST_DECL_TRANSFORM_TEST(remove_cv_test_14, ::tt::remove_cv, const volatile[2], BOOST_DECL_TRANSFORM_TEST(remove_cv_test_15, ::tt::remove_cv, [2], [2]) BOOST_DECL_TRANSFORM_TEST(remove_cv_test_16, ::tt::remove_cv, const*, const*) BOOST_DECL_TRANSFORM_TEST(remove_cv_test_17, ::tt::remove_cv, const*volatile, const*) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(remove_cv_test_5a, ::tt::remove_cv, const &&, const&&) #endif @@ -52,7 +52,7 @@ TT_TEST_BEGIN(remove_cv) remove_cv_test_15(); remove_cv_test_16(); remove_cv_test_17(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES remove_cv_test_5a(); #endif diff --git a/test/remove_extent_test.cpp b/test/remove_extent_test.cpp index 66407ef..cf708a4 100644 --- a/test/remove_extent_test.cpp +++ b/test/remove_extent_test.cpp @@ -28,7 +28,7 @@ BOOST_DECL_TRANSFORM_TEST(remove_extent_test_13, ::tt::remove_extent, (&)[2], (& BOOST_DECL_TRANSFORM_TEST3(remove_extent_test_14, ::tt::remove_extent, []) BOOST_DECL_TRANSFORM_TEST(remove_extent_test_15, ::tt::remove_extent, const [], const) BOOST_DECL_TRANSFORM_TEST(remove_extent_test_16, ::tt::remove_extent, const[][3], const[3]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(remove_extent_test_9a, ::tt::remove_extent, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(remove_extent_test_13a, ::tt::remove_extent, (&&)[2], (&&)[2]) #endif @@ -51,7 +51,7 @@ TT_TEST_BEGIN(remove_extent) remove_extent_test_14(); remove_extent_test_15(); remove_extent_test_16(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES remove_extent_test_9a(); remove_extent_test_13a(); #endif diff --git a/test/remove_pointer_test.cpp b/test/remove_pointer_test.cpp index 8ea738b..6a74081 100644 --- a/test/remove_pointer_test.cpp +++ b/test/remove_pointer_test.cpp @@ -26,7 +26,7 @@ BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_10, ::tt::remove_pointer, const*, BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_11, ::tt::remove_pointer, volatile*, volatile) BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_12, ::tt::remove_pointer, const[2][3], const[2][3]) BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_13, ::tt::remove_pointer, (&)[2], (&)[2]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_5a, ::tt::remove_pointer, const &&, const&&) BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_6a, ::tt::remove_pointer, &&, &&) BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_13a, ::tt::remove_pointer, (&&)[2], (&&)[2]) @@ -50,7 +50,7 @@ TT_TEST_BEGIN(remove_pointer) remove_pointer_test_11(); remove_pointer_test_12(); remove_pointer_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES remove_pointer_test_5a(); remove_pointer_test_6a(); remove_pointer_test_13a(); diff --git a/test/remove_reference_test.cpp b/test/remove_reference_test.cpp index d92f64c..980c125 100644 --- a/test/remove_reference_test.cpp +++ b/test/remove_reference_test.cpp @@ -25,7 +25,7 @@ BOOST_DECL_TRANSFORM_TEST(remove_reference_test_10, ::tt::remove_reference, cons BOOST_DECL_TRANSFORM_TEST(remove_reference_test_11, ::tt::remove_reference, volatile*, volatile*) BOOST_DECL_TRANSFORM_TEST(remove_reference_test_12, ::tt::remove_reference, const[2], const[2]) BOOST_DECL_TRANSFORM_TEST(remove_reference_test_13, ::tt::remove_reference, (&)[2], [2]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST3(remove_reference_test_3a, ::tt::remove_reference, &&) BOOST_DECL_TRANSFORM_TEST(remove_reference_test_5a, ::tt::remove_reference, const &&, const) BOOST_DECL_TRANSFORM_TEST3(remove_reference_test_8a, ::tt::remove_reference, &&) @@ -48,7 +48,7 @@ TT_TEST_BEGIN(remove_reference) remove_reference_test_11(); remove_reference_test_12(); remove_reference_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES remove_reference_test_3a(); remove_reference_test_5a(); remove_reference_test_8a(); diff --git a/test/test.hpp b/test/test.hpp index 00a1e60..0eb7960 100644 --- a/test/test.hpp +++ b/test/test.hpp @@ -260,7 +260,7 @@ struct nothrow_copy_UDT { nothrow_copy_UDT(); nothrow_copy_UDT(const nothrow_copy_UDT&)throw(); - ~nothrow_copy_UDT(){}; + ~nothrow_copy_UDT(){} nothrow_copy_UDT& operator=(const nothrow_copy_UDT&); bool operator==(const nothrow_copy_UDT&)const { return true; } diff --git a/test/tricky_add_pointer_test.cpp b/test/tricky_add_pointer_test.cpp index 4d13497..06a1db1 100644 --- a/test/tricky_add_pointer_test.cpp +++ b/test/tricky_add_pointer_test.cpp @@ -18,7 +18,7 @@ BOOST_DECL_TRANSFORM_TEST(add_pointer_test_8, ::tt::add_pointer, const [2], cons BOOST_DECL_TRANSFORM_TEST(add_pointer_test_9, ::tt::add_pointer, const &, const*) BOOST_DECL_TRANSFORM_TEST(add_pointer_test_12, ::tt::add_pointer, const[2][3], const (*)[2][3]) BOOST_DECL_TRANSFORM_TEST(add_pointer_test_13, ::tt::add_pointer, (&)[2], (*)[2]) -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_DECL_TRANSFORM_TEST(add_pointer_test_5a, ::tt::add_pointer, const &&, const*) BOOST_DECL_TRANSFORM_TEST(add_pointer_test_6a, ::tt::add_pointer, &&, *) BOOST_DECL_TRANSFORM_TEST(add_pointer_test_9a, ::tt::add_pointer, const &&, const*) @@ -33,7 +33,7 @@ TT_TEST_BEGIN(tricky_add_pointer_test) add_pointer_test_9(); add_pointer_test_12(); add_pointer_test_13(); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES add_pointer_test_5a(); add_pointer_test_6a(); add_pointer_test_9a(); diff --git a/test/tricky_function_type_test.cpp b/test/tricky_function_type_test.cpp index 30ba24c..5c339d1 100644 --- a/test/tricky_function_type_test.cpp +++ b/test/tricky_function_type_test.cpp @@ -97,6 +97,13 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer::value, t typedef void (test_abc1::*vproc3)(int, char, long, long, ...)const; BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); + TT_TEST_END diff --git a/test/tricky_partial_spec_test.cpp b/test/tricky_partial_spec_test.cpp index 1f7df70..140797e 100644 --- a/test/tricky_partial_spec_test.cpp +++ b/test/tricky_partial_spec_test.cpp @@ -63,7 +63,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); -#ifndef BOOST_NO_RVALUE_REFERENCES +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of::value), false); diff --git a/test/tricky_rvalue_test.cpp b/test/tricky_rvalue_test.cpp index 5c01402..85d4d9e 100644 --- a/test/tricky_rvalue_test.cpp +++ b/test/tricky_rvalue_test.cpp @@ -9,17 +9,21 @@ #ifdef TEST_STD # include #else +# include # include # include # include +# include #endif TT_TEST_BEGIN(rvalue_reference_test) -#ifndef BOOST_NO_RVALUE_REFERENCES +#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_convertible::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible::value), true); #endif TT_TEST_END