diff --git a/libcxx/include/__type_traits/add_lvalue_reference.h b/libcxx/include/__type_traits/add_lvalue_reference.h --- a/libcxx/include/__type_traits/add_lvalue_reference.h +++ b/libcxx/include/__type_traits/add_lvalue_reference.h @@ -18,11 +18,21 @@ _LIBCPP_BEGIN_NAMESPACE_STD -template ::value> struct __add_lvalue_reference_impl { typedef _LIBCPP_NODEBUG _Tp type; }; +#if __has_builtin(__add_lvalue_reference) +template +struct add_lvalue_reference { + using type _LIBCPP_NODEBUG = __add_lvalue_reference(_Tp); +}; +#else +template ::value> +struct __add_lvalue_reference_impl { + typedef _LIBCPP_NODEBUG _Tp type; +}; template struct __add_lvalue_reference_impl<_Tp, true> { typedef _LIBCPP_NODEBUG _Tp& type; }; template struct _LIBCPP_TEMPLATE_VIS add_lvalue_reference {typedef _LIBCPP_NODEBUG typename __add_lvalue_reference_impl<_Tp>::type type;}; +#endif // __has_builtin(__add_lvalue_reference) #if _LIBCPP_STD_VER > 11 template using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; diff --git a/libcxx/include/__type_traits/add_pointer.h b/libcxx/include/__type_traits/add_pointer.h --- a/libcxx/include/__type_traits/add_pointer.h +++ b/libcxx/include/__type_traits/add_pointer.h @@ -21,16 +21,23 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__add_pointer) +template +struct add_pointer { + using type _LIBCPP_NODEBUG = __add_pointer(_Tp); +}; +#else template ::value || - _IsSame::type, void>::value> -struct __add_pointer_impl - {typedef _LIBCPP_NODEBUG typename remove_reference<_Tp>::type* type;}; + bool = __libcpp_is_referenceable<_Tp>::value || _IsSame::type, void>::value> +struct __add_pointer_impl { + typedef _LIBCPP_NODEBUG typename remove_reference<_Tp>::type* type; +}; template struct __add_pointer_impl<_Tp, false> {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS add_pointer {typedef _LIBCPP_NODEBUG typename __add_pointer_impl<_Tp>::type type;}; +#endif // __has_builtin(__add_pointer) #if _LIBCPP_STD_VER > 11 template using add_pointer_t = typename add_pointer<_Tp>::type; diff --git a/libcxx/include/__type_traits/add_rvalue_reference.h b/libcxx/include/__type_traits/add_rvalue_reference.h --- a/libcxx/include/__type_traits/add_rvalue_reference.h +++ b/libcxx/include/__type_traits/add_rvalue_reference.h @@ -18,11 +18,21 @@ _LIBCPP_BEGIN_NAMESPACE_STD -template ::value> struct __add_rvalue_reference_impl { typedef _LIBCPP_NODEBUG _Tp type; }; +#if __has_builtin(__add_rvalue_reference) +template +struct add_rvalue_reference { + using type _LIBCPP_NODEBUG = __add_rvalue_reference(_Tp); +}; +#else +template ::value> +struct __add_rvalue_reference_impl { + typedef _LIBCPP_NODEBUG _Tp type; +}; template struct __add_rvalue_reference_impl<_Tp, true> { typedef _LIBCPP_NODEBUG _Tp&& type; }; template struct _LIBCPP_TEMPLATE_VIS add_rvalue_reference {typedef _LIBCPP_NODEBUG typename __add_rvalue_reference_impl<_Tp>::type type;}; +#endif // __has_builtin(__add_rvalue_reference) #if _LIBCPP_STD_VER > 11 template using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; diff --git a/libcxx/include/__type_traits/decay.h b/libcxx/include/__type_traits/decay.h --- a/libcxx/include/__type_traits/decay.h +++ b/libcxx/include/__type_traits/decay.h @@ -26,6 +26,12 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__decay) +template +struct decay { + using type _LIBCPP_NODEBUG = __decay(_Tp); +}; +#else template struct __decay { typedef _LIBCPP_NODEBUG typename remove_cv<_Up>::type type; @@ -53,8 +59,9 @@ private: typedef _LIBCPP_NODEBUG typename remove_reference<_Tp>::type _Up; public: - typedef _LIBCPP_NODEBUG typename __decay<_Up, __is_referenceable<_Up>::value>::type type; + typedef _LIBCPP_NODEBUG typename __decay<_Up, __libcpp_is_referenceable<_Up>::value>::type type; }; +#endif // __has_builtin(__decay) #if _LIBCPP_STD_VER > 11 template using decay_t = typename decay<_Tp>::type; diff --git a/libcxx/include/__type_traits/is_referenceable.h b/libcxx/include/__type_traits/is_referenceable.h --- a/libcxx/include/__type_traits/is_referenceable.h +++ b/libcxx/include/__type_traits/is_referenceable.h @@ -19,14 +19,22 @@ _LIBCPP_BEGIN_NAMESPACE_STD -struct __is_referenceable_impl { - template static _Tp& __test(int); - template static false_type __test(...); +#if __has_builtin(__is_referenceable) +template +struct __libcpp_is_referenceable : integral_constant {}; +#else +struct __libcpp_is_referenceable_impl { + template + static _Tp& __test(int); + template + static false_type __test(...); }; template -struct __is_referenceable : integral_constant(0)), false_type>::value> {}; +struct __libcpp_is_referenceable + : integral_constant(0)), false_type>::value> { +}; +#endif // __has_builtin(__is_referenceable) _LIBCPP_END_NAMESPACE_STD diff --git a/libcxx/include/__type_traits/is_swappable.h b/libcxx/include/__type_traits/is_swappable.h --- a/libcxx/include/__type_traits/is_swappable.h +++ b/libcxx/include/__type_traits/is_swappable.h @@ -119,7 +119,7 @@ template struct _LIBCPP_TEMPLATE_VIS is_swappable : public conditional< - __is_referenceable<_Tp>::value, + __libcpp_is_referenceable<_Tp>::value, is_swappable_with< typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<_Tp>::type>, @@ -137,7 +137,7 @@ template struct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable : public conditional< - __is_referenceable<_Tp>::value, + __libcpp_is_referenceable<_Tp>::value, is_nothrow_swappable_with< typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<_Tp>::type>, diff --git a/libcxx/include/__type_traits/make_signed.h b/libcxx/include/__type_traits/make_signed.h --- a/libcxx/include/__type_traits/make_signed.h +++ b/libcxx/include/__type_traits/make_signed.h @@ -23,19 +23,25 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__make_signed) +template +struct make_signed { + using type _LIBCPP_NODEBUG = __make_signed(_Tp); +}; +#else typedef __type_list -#endif +# endif > > > > > __signed_types; template ::value || is_enum<_Tp>::value> @@ -56,16 +62,17 @@ template <> struct __make_signed {typedef long type;}; template <> struct __make_signed< signed long long, true> {typedef long long type;}; template <> struct __make_signed {typedef long long type;}; -#ifndef _LIBCPP_HAS_NO_INT128 +# ifndef _LIBCPP_HAS_NO_INT128 template <> struct __make_signed<__int128_t, true> {typedef __int128_t type;}; template <> struct __make_signed<__uint128_t, true> {typedef __int128_t type;}; -#endif +# endif template struct _LIBCPP_TEMPLATE_VIS make_signed { typedef typename __apply_cv<_Tp, typename __make_signed::type>::type>::type type; }; +#endif // __has_builtin(__make_signed) #if _LIBCPP_STD_VER > 11 template using make_signed_t = typename make_signed<_Tp>::type; diff --git a/libcxx/include/__type_traits/make_unsigned.h b/libcxx/include/__type_traits/make_unsigned.h --- a/libcxx/include/__type_traits/make_unsigned.h +++ b/libcxx/include/__type_traits/make_unsigned.h @@ -25,19 +25,25 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__make_unsigned) +template +struct make_unsigned { + using type _LIBCPP_NODEBUG = __make_unsigned(_Tp); +}; +#else typedef __type_list -#endif +# endif > > > > > __unsigned_types; template ::value || is_enum<_Tp>::value> @@ -58,16 +64,17 @@ template <> struct __make_unsigned {typedef unsigned long type;}; template <> struct __make_unsigned< signed long long, true> {typedef unsigned long long type;}; template <> struct __make_unsigned {typedef unsigned long long type;}; -#ifndef _LIBCPP_HAS_NO_INT128 +# ifndef _LIBCPP_HAS_NO_INT128 template <> struct __make_unsigned<__int128_t, true> {typedef __uint128_t type;}; template <> struct __make_unsigned<__uint128_t, true> {typedef __uint128_t type;}; -#endif +# endif template struct _LIBCPP_TEMPLATE_VIS make_unsigned { typedef typename __apply_cv<_Tp, typename __make_unsigned::type>::type>::type type; }; +#endif // __has_builtin(__make_unsigned) #if _LIBCPP_STD_VER > 11 template using make_unsigned_t = typename make_unsigned<_Tp>::type; diff --git a/libcxx/include/__type_traits/remove_all_extents.h b/libcxx/include/__type_traits/remove_all_extents.h --- a/libcxx/include/__type_traits/remove_all_extents.h +++ b/libcxx/include/__type_traits/remove_all_extents.h @@ -18,12 +18,19 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_all_extents) +template +struct remove_all_extents { + using type _LIBCPP_NODEBUG = __remove_all_extents(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_all_extents {typedef _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_all_extents<_Tp[]> {typedef typename remove_all_extents<_Tp>::type type;}; template struct _LIBCPP_TEMPLATE_VIS remove_all_extents<_Tp[_Np]> {typedef typename remove_all_extents<_Tp>::type type;}; +#endif // __has_builtin(__remove_all_extents) #if _LIBCPP_STD_VER > 11 template using remove_all_extents_t = typename remove_all_extents<_Tp>::type; diff --git a/libcxx/include/__type_traits/remove_const.h b/libcxx/include/__type_traits/remove_const.h --- a/libcxx/include/__type_traits/remove_const.h +++ b/libcxx/include/__type_traits/remove_const.h @@ -17,8 +17,16 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_const) +template +struct remove_const { + using type _LIBCPP_NODEBUG = __remove_const(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_const {typedef _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_const {typedef _Tp type;}; +#endif // __has_builtin(__remove_const) + #if _LIBCPP_STD_VER > 11 template using remove_const_t = typename remove_const<_Tp>::type; #endif diff --git a/libcxx/include/__type_traits/remove_cv.h b/libcxx/include/__type_traits/remove_cv.h --- a/libcxx/include/__type_traits/remove_cv.h +++ b/libcxx/include/__type_traits/remove_cv.h @@ -19,8 +19,16 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_cv) +template +struct remove_cv { + using type _LIBCPP_NODEBUG = __remove_cv(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_cv {typedef typename remove_volatile::type>::type type;}; +#endif // __has_builtin(__remove_cv) + #if _LIBCPP_STD_VER > 11 template using remove_cv_t = typename remove_cv<_Tp>::type; #endif diff --git a/libcxx/include/__type_traits/remove_cvref.h b/libcxx/include/__type_traits/remove_cvref.h --- a/libcxx/include/__type_traits/remove_cvref.h +++ b/libcxx/include/__type_traits/remove_cvref.h @@ -20,8 +20,13 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_cvref) +template +using __uncvref_t _LIBCPP_NODEBUG = __remove_cvref(_Tp); +#else template using __uncvref_t _LIBCPP_NODEBUG = typename remove_cv::type>::type; +#endif // __has_builtin(__remove_cvref) template struct __is_same_uncvref : _IsSame<__uncvref_t<_Tp>, __uncvref_t<_Up> > {}; diff --git a/libcxx/include/__type_traits/remove_extent.h b/libcxx/include/__type_traits/remove_extent.h --- a/libcxx/include/__type_traits/remove_extent.h +++ b/libcxx/include/__type_traits/remove_extent.h @@ -18,12 +18,19 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_extent) +template +struct remove_extent { + using type _LIBCPP_NODEBUG = __remove_extent(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_extent {typedef _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_extent<_Tp[]> {typedef _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_extent<_Tp[_Np]> {typedef _Tp type;}; +#endif // __has_builtin(__remove_extent) #if _LIBCPP_STD_VER > 11 template using remove_extent_t = typename remove_extent<_Tp>::type; diff --git a/libcxx/include/__type_traits/remove_pointer.h b/libcxx/include/__type_traits/remove_pointer.h --- a/libcxx/include/__type_traits/remove_pointer.h +++ b/libcxx/include/__type_traits/remove_pointer.h @@ -17,11 +17,18 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_pointer) +template +struct remove_pointer { + using type _LIBCPP_NODEBUG = __remove_pointer(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_pointer {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp*> {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp* const> {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp* volatile> {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp* const volatile> {typedef _LIBCPP_NODEBUG _Tp type;}; +#endif // __has_builtin(__remove_pointer) #if _LIBCPP_STD_VER > 11 template using remove_pointer_t = typename remove_pointer<_Tp>::type; diff --git a/libcxx/include/__type_traits/remove_reference.h b/libcxx/include/__type_traits/remove_reference.h --- a/libcxx/include/__type_traits/remove_reference.h +++ b/libcxx/include/__type_traits/remove_reference.h @@ -18,9 +18,16 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_reference) +template +struct remove_reference { + using type _LIBCPP_NODEBUG = __remove_reference(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_reference {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_reference<_Tp&> {typedef _LIBCPP_NODEBUG _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_reference<_Tp&&> {typedef _LIBCPP_NODEBUG _Tp type;}; +#endif // __has_builtin(__remove_reference) #if _LIBCPP_STD_VER > 11 template using remove_reference_t = typename remove_reference<_Tp>::type; diff --git a/libcxx/include/__type_traits/remove_volatile.h b/libcxx/include/__type_traits/remove_volatile.h --- a/libcxx/include/__type_traits/remove_volatile.h +++ b/libcxx/include/__type_traits/remove_volatile.h @@ -17,8 +17,16 @@ _LIBCPP_BEGIN_NAMESPACE_STD +#if __has_builtin(__remove_volatile) +template +struct remove_volatile { + using type _LIBCPP_NODEBUG = __remove_volatile(_Tp); +}; +#else template struct _LIBCPP_TEMPLATE_VIS remove_volatile {typedef _Tp type;}; template struct _LIBCPP_TEMPLATE_VIS remove_volatile {typedef _Tp type;}; +#endif // __has_builtin(__remove_volatile) + #if _LIBCPP_STD_VER > 11 template using remove_volatile_t = typename remove_volatile<_Tp>::type; #endif diff --git a/libcxx/test/libcxx/utilities/meta/is_referenceable.pass.cpp b/libcxx/test/libcxx/utilities/meta/is_referenceable.pass.cpp --- a/libcxx/test/libcxx/utilities/meta/is_referenceable.pass.cpp +++ b/libcxx/test/libcxx/utilities/meta/is_referenceable.pass.cpp @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// // -// __is_referenceable +// __libcpp_is_referenceable // // [defns.referenceable] defines "a referenceable type" as: // An object type, a function type that does not have cv-qualifiers @@ -21,172 +21,172 @@ struct Foo {}; -static_assert((!std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); // Functions without cv-qualifiers are referenceable -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); -static_assert((!std::__is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); +static_assert((!std::__libcpp_is_referenceable::value), ""); #endif // member functions with or without cv-qualifiers are referenceable -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #if TEST_STD_VER >= 11 -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); -static_assert(( std::__is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); +static_assert((std::__libcpp_is_referenceable::value), ""); #endif int main(int, char**) {