Author: marshall Date: Sat Nov 7 11:44:36 2015 New Revision: 252406 URL: http://llvm.org/viewvc/llvm-project?rev=252406&view=rev Log: More of P0006R0: type traits variable aliases for C++17.
Modified: libcxx/trunk/include/type_traits libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp Modified: libcxx/trunk/include/type_traits URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/include/type_traits (original) +++ libcxx/trunk/include/type_traits Sat Nov 7 11:44:36 2015 @@ -1378,6 +1378,11 @@ template <class _Tp> struct _LIBCPP_TYPE #endif +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool has_virtual_destructor_v + = has_virtual_destructor<_Tp>::value; +#endif + // alignment_of template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY alignment_of @@ -1905,12 +1910,22 @@ template <class _Tp, class _Arg> struct is_assignable : public __is_assignable_imp<_Tp, _Arg> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp, class _Arg> _LIBCPP_CONSTEXPR bool is_assignable_v + = is_assignable<_Tp, _Arg>::value; +#endif + // is_copy_assignable template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_copy_assignable : public is_assignable<typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_copy_assignable_v + = is_copy_assignable<_Tp>::value; +#endif + // is_move_assignable template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_move_assignable @@ -1921,6 +1936,11 @@ template <class _Tp> struct _LIBCPP_TYPE : public is_copy_assignable<_Tp> {}; #endif +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_move_assignable_v + = is_move_assignable<_Tp>::value; +#endif + // is_destructible // if it's a reference, return true @@ -1979,6 +1999,11 @@ template <> struct is_destructible<void> : public _VSTD::false_type {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_destructible_v + = is_destructible<_Tp>::value; +#endif + // move #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES @@ -3013,6 +3038,11 @@ struct __is_constructible2_imp<false, _A #endif // _LIBCPP_HAS_NO_VARIADICS #endif // __has_feature(is_constructible) +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) && !defined(_LIBCPP_HAS_NO_VARIADICS) +template <class _Tp, class ..._Args> _LIBCPP_CONSTEXPR bool is_constructible_v + = is_constructible<_Tp, _Args...>::value; +#endif + // is_default_constructible template <class _Tp> @@ -3020,6 +3050,11 @@ struct _LIBCPP_TYPE_VIS_ONLY is_default_ : public is_constructible<_Tp> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_default_constructible_v + = is_default_constructible<_Tp>::value; +#endif + // is_copy_constructible template <class _Tp> @@ -3027,6 +3062,11 @@ struct _LIBCPP_TYPE_VIS_ONLY is_copy_con : public is_constructible<_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_copy_constructible_v + = is_copy_constructible<_Tp>::value; +#endif + // is_move_constructible template <class _Tp> @@ -3038,6 +3078,11 @@ struct _LIBCPP_TYPE_VIS_ONLY is_move_con #endif {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_move_constructible_v + = is_move_constructible<_Tp>::value; +#endif + // is_trivially_constructible #ifndef _LIBCPP_HAS_NO_VARIADICS @@ -3165,18 +3210,33 @@ struct _LIBCPP_TYPE_VIS_ONLY is_triviall #endif // _LIBCPP_HAS_NO_VARIADICS +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) && !defined(_LIBCPP_HAS_NO_VARIADICS) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_constructible_v + = is_trivially_constructible<_Tp>::value; +#endif + // is_trivially_default_constructible template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_default_constructible : public is_trivially_constructible<_Tp> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_default_constructible_v + = is_trivially_default_constructible<_Tp>::value; +#endif + // is_trivially_copy_constructible template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_copy_constructible : public is_trivially_constructible<_Tp, typename add_lvalue_reference<const _Tp>::type> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copy_constructible_v + = is_trivially_copy_constructible<_Tp>::value; +#endif + // is_trivially_move_constructible template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_move_constructible @@ -3187,6 +3247,11 @@ template <class _Tp> struct _LIBCPP_TYPE #endif {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_move_constructible_v + = is_trivially_move_constructible<_Tp>::value; +#endif + // is_trivially_assignable #if __has_feature(is_trivially_assignable) || _GNUC_VER >= 501 @@ -3225,12 +3290,22 @@ struct is_trivially_assignable<_Tp&, _Tp #endif // !__has_feature(is_trivially_assignable) +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp, class _Arg> _LIBCPP_CONSTEXPR bool is_trivially_assignable_v + = is_trivially_assignable<_Tp, _Arg>::value; +#endif + // is_trivially_copy_assignable template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_copy_assignable : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copy_assignable_v + = is_trivially_copy_assignable<_Tp>::value; +#endif + // is_trivially_move_assignable template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_move_assignable @@ -3242,6 +3317,11 @@ template <class _Tp> struct _LIBCPP_TYPE #endif {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_move_assignable_v + = is_trivially_move_assignable<_Tp>::value; +#endif + // is_trivially_destructible #if __has_feature(has_trivial_destructor) || (_GNUC_VER >= 403) @@ -3263,6 +3343,11 @@ template <class _Tp> struct _LIBCPP_TYPE #endif +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_destructible_v + = is_trivially_destructible<_Tp>::value; +#endif + // is_nothrow_constructible #if 0 @@ -3423,18 +3508,33 @@ struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_ #endif // _LIBCPP_HAS_NO_VARIADICS #endif // __has_feature(is_nothrow_constructible) +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) && !defined(_LIBCPP_HAS_NO_VARIADICS) +template <class _Tp, class ..._Args> _LIBCPP_CONSTEXPR bool is_nothrow_constructible_v + = is_nothrow_constructible<_Tp, _Args...>::value; +#endif + // is_nothrow_default_constructible template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_default_constructible : public is_nothrow_constructible<_Tp> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_default_constructible_v + = is_nothrow_default_constructible<_Tp>::value; +#endif + // is_nothrow_copy_constructible template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_copy_constructible : public is_nothrow_constructible<_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_copy_constructible_v + = is_nothrow_copy_constructible<_Tp>::value; +#endif + // is_nothrow_move_constructible template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_move_constructible @@ -3445,6 +3545,11 @@ template <class _Tp> struct _LIBCPP_TYPE #endif {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_move_constructible_v + = is_nothrow_move_constructible<_Tp>::value; +#endif + // is_nothrow_assignable #if __has_feature(cxx_noexcept) || (_GNUC_VER >= 407 && __cplusplus >= 201103L) @@ -3513,6 +3618,11 @@ struct is_nothrow_assignable<_Tp&, _Tp&& #endif // __has_feature(cxx_noexcept) +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp, class _Arg> _LIBCPP_CONSTEXPR bool is_nothrow_assignable_v + = is_nothrow_assignable<_Tp, _Arg>::value; +#endif + // is_nothrow_copy_assignable template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_copy_assignable @@ -3530,6 +3640,11 @@ template <class _Tp> struct _LIBCPP_TYPE #endif {}; +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_copy_assignable_v + = is_nothrow_copy_assignable<_Tp>::value; +#endif + // is_nothrow_destructible #if __has_feature(cxx_noexcept) || (_GNUC_VER >= 407 && __cplusplus >= 201103L) @@ -3591,6 +3706,11 @@ struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_ #endif +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) +template <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_destructible_v + = is_nothrow_destructible<_Tp>::value; +#endif + // is_pod #if __has_feature(is_pod) || (_GNUC_VER >= 403) Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp Sat Nov 7 11:44:36 2015 @@ -20,6 +20,12 @@ void test_has_virtual_destructor() static_assert( std::has_virtual_destructor<const T>::value, ""); static_assert( std::has_virtual_destructor<volatile T>::value, ""); static_assert( std::has_virtual_destructor<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::has_virtual_destructor_v<T>, ""); + static_assert( std::has_virtual_destructor_v<const T>, ""); + static_assert( std::has_virtual_destructor_v<volatile T>, ""); + static_assert( std::has_virtual_destructor_v<const volatile T>, ""); +#endif } template <class T> @@ -29,6 +35,12 @@ void test_has_not_virtual_destructor() static_assert(!std::has_virtual_destructor<const T>::value, ""); static_assert(!std::has_virtual_destructor<volatile T>::value, ""); static_assert(!std::has_virtual_destructor<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::has_virtual_destructor_v<T>, ""); + static_assert(!std::has_virtual_destructor_v<const T>, ""); + static_assert(!std::has_virtual_destructor_v<volatile T>, ""); + static_assert(!std::has_virtual_destructor_v<const volatile T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -26,12 +26,18 @@ template <class T, class U> void test_is_assignable() { static_assert(( std::is_assignable<T, U>::value), ""); +#if TEST_STD_VER > 14 + static_assert( std::is_assignable_v<T, U>, ""); +#endif } template <class T, class U> void test_is_not_assignable() { static_assert((!std::is_assignable<T, U>::value), ""); +#if TEST_STD_VER > 14 + static_assert( !std::is_assignable_v<T, U>, ""); +#endif } struct D; Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -38,30 +38,45 @@ template <class T> void test_is_constructible() { static_assert( (std::is_constructible<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert( std::is_constructible_v<T>, ""); +#endif } template <class T, class A0> void test_is_constructible() { - static_assert( (std::is_constructible<T, A0>::value), ""); + static_assert(( std::is_constructible<T, A0>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_constructible_v<T, A0>), ""); +#endif } template <class T, class A0, class A1> void test_is_constructible() { - static_assert( (std::is_constructible<T, A0, A1>::value), ""); + static_assert(( std::is_constructible<T, A0, A1>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_constructible_v<T, A0, A1>), ""); +#endif } template <class T> void test_is_not_constructible() { static_assert((!std::is_constructible<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_constructible_v<T>), ""); +#endif } template <class T, class A0> void test_is_not_constructible() { static_assert((!std::is_constructible<T, A0>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_constructible_v<T, A0>), ""); +#endif } int main() Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_is_copy_assignable() { static_assert(( std::is_copy_assignable<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_copy_assignable_v<T>), ""); +#endif } template <class T> void test_is_not_copy_assignable() { static_assert((!std::is_copy_assignable<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_copy_assignable_v<T>), ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_is_copy_constructible() { static_assert( std::is_copy_constructible<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_copy_constructible_v<T>, ""); +#endif } template <class T> void test_is_not_copy_constructible() { static_assert(!std::is_copy_constructible<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_copy_constructible_v<T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -20,6 +20,12 @@ void test_is_default_constructible() static_assert( std::is_default_constructible<const T>::value, ""); static_assert( std::is_default_constructible<volatile T>::value, ""); static_assert( std::is_default_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_default_constructible_v<T>, ""); + static_assert( std::is_default_constructible_v<const T>, ""); + static_assert( std::is_default_constructible_v<volatile T>, ""); + static_assert( std::is_default_constructible_v<const volatile T>, ""); +#endif } template <class T> @@ -29,6 +35,12 @@ void test_is_not_default_constructible() static_assert(!std::is_default_constructible<const T>::value, ""); static_assert(!std::is_default_constructible<volatile T>::value, ""); static_assert(!std::is_default_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_default_constructible_v<T>, ""); + static_assert(!std::is_default_constructible_v<const T>, ""); + static_assert(!std::is_default_constructible_v<volatile T>, ""); + static_assert(!std::is_default_constructible_v<const volatile T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -22,6 +22,12 @@ void test_is_destructible() static_assert( std::is_destructible<const T>::value, ""); static_assert( std::is_destructible<volatile T>::value, ""); static_assert( std::is_destructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_destructible_v<T>, ""); + static_assert( std::is_destructible_v<const T>, ""); + static_assert( std::is_destructible_v<volatile T>, ""); + static_assert( std::is_destructible_v<const volatile T>, ""); +#endif } template <class T> @@ -31,6 +37,12 @@ void test_is_not_destructible() static_assert(!std::is_destructible<const T>::value, ""); static_assert(!std::is_destructible<volatile T>::value, ""); static_assert(!std::is_destructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_destructible_v<T>, ""); + static_assert(!std::is_destructible_v<const T>, ""); + static_assert(!std::is_destructible_v<volatile T>, ""); + static_assert(!std::is_destructible_v<const volatile T>, ""); +#endif } class Empty {}; Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp Sat Nov 7 11:44:36 2015 @@ -79,7 +79,7 @@ int main() // In C++14, cv-void is is a literal type #if TEST_STD_VER < 14 test_is_not_literal_type<void>(); -#else TEST_STD_VER > 14 +#elif TEST_STD_VER > 14 test_is_literal_type<void>(); #endif Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -16,13 +16,19 @@ template <class T> void test_is_move_assignable() { - static_assert( std::is_move_assignable<T>::value, ""); + static_assert(( std::is_move_assignable<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_move_assignable_v<T>), ""); +#endif } template <class T> void test_is_not_move_assignable() { - static_assert(!std::is_move_assignable<T>::value, ""); + static_assert((!std::is_move_assignable<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_move_assignable_v<T>), ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_is_move_constructible() { static_assert( std::is_move_constructible<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_move_constructible_v<T>, ""); +#endif } template <class T> void test_is_not_move_constructible() { static_assert(!std::is_move_constructible<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_move_constructible_v<T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T, class U> void test_is_nothrow_assignable() { static_assert(( std::is_nothrow_assignable<T, U>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_nothrow_assignable_v<T, U>), ""); +#endif } template <class T, class U> void test_is_not_nothrow_assignable() { static_assert((!std::is_nothrow_assignable<T, U>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_nothrow_assignable_v<T, U>), ""); +#endif } struct A Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -18,30 +18,45 @@ template <class T> void test_is_nothrow_constructible() { static_assert(( std::is_nothrow_constructible<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_nothrow_constructible_v<T>), ""); +#endif } template <class T, class A0> void test_is_nothrow_constructible() { static_assert(( std::is_nothrow_constructible<T, A0>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_nothrow_constructible_v<T, A0>), ""); +#endif } template <class T> void test_is_not_nothrow_constructible() { static_assert((!std::is_nothrow_constructible<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_nothrow_constructible_v<T>), ""); +#endif } template <class T, class A0> void test_is_not_nothrow_constructible() { static_assert((!std::is_nothrow_constructible<T, A0>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_nothrow_constructible_v<T, A0>), ""); +#endif } template <class T, class A0, class A1> void test_is_not_nothrow_constructible() { static_assert((!std::is_nothrow_constructible<T, A0, A1>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_nothrow_constructible_v<T, A0, A1>), ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_has_nothrow_assign() { static_assert( std::is_nothrow_copy_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_copy_assignable_v<T>, ""); +#endif } template <class T> void test_has_not_nothrow_assign() { static_assert(!std::is_nothrow_copy_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_nothrow_copy_assignable_v<T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -18,6 +18,10 @@ void test_is_nothrow_copy_constructible( { static_assert( std::is_nothrow_copy_constructible<T>::value, ""); static_assert( std::is_nothrow_copy_constructible<const T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_copy_constructible_v<T>, ""); + static_assert( std::is_nothrow_copy_constructible_v<const T>, ""); +#endif } template <class T> @@ -27,6 +31,12 @@ void test_has_not_nothrow_copy_construct static_assert(!std::is_nothrow_copy_constructible<const T>::value, ""); static_assert(!std::is_nothrow_copy_constructible<volatile T>::value, ""); static_assert(!std::is_nothrow_copy_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_nothrow_copy_constructible_v<T>, ""); + static_assert(!std::is_nothrow_copy_constructible_v<const T>, ""); + static_assert(!std::is_nothrow_copy_constructible_v<volatile T>, ""); + static_assert(!std::is_nothrow_copy_constructible_v<const volatile T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -20,6 +20,12 @@ void test_is_nothrow_default_constructib static_assert( std::is_nothrow_default_constructible<const T>::value, ""); static_assert( std::is_nothrow_default_constructible<volatile T>::value, ""); static_assert( std::is_nothrow_default_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_default_constructible_v<T>, ""); + static_assert( std::is_nothrow_default_constructible_v<const T>, ""); + static_assert( std::is_nothrow_default_constructible_v<volatile T>, ""); + static_assert( std::is_nothrow_default_constructible_v<const volatile T>, ""); +#endif } template <class T> @@ -29,6 +35,12 @@ void test_has_not_nothrow_default_constr static_assert(!std::is_nothrow_default_constructible<const T>::value, ""); static_assert(!std::is_nothrow_default_constructible<volatile T>::value, ""); static_assert(!std::is_nothrow_default_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_nothrow_default_constructible_v<T>, ""); + static_assert(!std::is_nothrow_default_constructible_v<const T>, ""); + static_assert(!std::is_nothrow_default_constructible_v<volatile T>, ""); + static_assert(!std::is_nothrow_default_constructible_v<const volatile T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -22,6 +22,12 @@ void test_is_nothrow_destructible() static_assert( std::is_nothrow_destructible<const T>::value, ""); static_assert( std::is_nothrow_destructible<volatile T>::value, ""); static_assert( std::is_nothrow_destructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_destructible_v<T>, ""); + static_assert( std::is_nothrow_destructible_v<const T>, ""); + static_assert( std::is_nothrow_destructible_v<volatile T>, ""); + static_assert( std::is_nothrow_destructible_v<const volatile T>, ""); +#endif } template <class T> @@ -31,6 +37,12 @@ void test_is_not_nothrow_destructible() static_assert(!std::is_nothrow_destructible<const T>::value, ""); static_assert(!std::is_nothrow_destructible<volatile T>::value, ""); static_assert(!std::is_nothrow_destructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_nothrow_destructible_v<T>, ""); + static_assert(!std::is_nothrow_destructible_v<const T>, ""); + static_assert(!std::is_nothrow_destructible_v<volatile T>, ""); + static_assert(!std::is_nothrow_destructible_v<const volatile T>, ""); +#endif } Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_has_nothrow_assign() { static_assert( std::is_nothrow_move_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_move_assignable_v<T>, ""); +#endif } template <class T> void test_has_not_nothrow_assign() { static_assert(!std::is_nothrow_move_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_move_assignable_v<T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -18,6 +18,10 @@ void test_is_nothrow_move_constructible( { static_assert( std::is_nothrow_move_constructible<T>::value, ""); static_assert( std::is_nothrow_move_constructible<const T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_nothrow_move_constructible_v<T>, ""); + static_assert( std::is_nothrow_move_constructible_v<const T>, ""); +#endif } template <class T> @@ -27,6 +31,12 @@ void test_has_not_nothrow_move_construct static_assert(!std::is_nothrow_move_constructible<const T>::value, ""); static_assert(!std::is_nothrow_move_constructible<volatile T>::value, ""); static_assert(!std::is_nothrow_move_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_nothrow_move_constructible_v<T>, ""); + static_assert(!std::is_nothrow_move_constructible_v<const T>, ""); + static_assert(!std::is_nothrow_move_constructible_v<volatile T>, ""); + static_assert(!std::is_nothrow_move_constructible_v<const volatile T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T, class U> void test_is_trivially_assignable() { static_assert(( std::is_trivially_assignable<T, U>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_trivially_assignable_v<T, U>), ""); +#endif } template <class T, class U> void test_is_not_trivially_assignable() { static_assert((!std::is_trivially_assignable<T, U>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_trivially_assignable_v<T, U>), ""); +#endif } struct A Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -18,30 +18,45 @@ template <class T> void test_is_trivially_constructible() { static_assert(( std::is_trivially_constructible<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_trivially_constructible_v<T>), ""); +#endif } template <class T, class A0> void test_is_trivially_constructible() { static_assert(( std::is_trivially_constructible<T, A0>::value), ""); +#if TEST_STD_VER > 14 + static_assert(( std::is_trivially_constructible_v<T, A0>), ""); +#endif } template <class T> void test_is_not_trivially_constructible() { static_assert((!std::is_trivially_constructible<T>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_trivially_constructible_v<T>), ""); +#endif } template <class T, class A0> void test_is_not_trivially_constructible() { static_assert((!std::is_trivially_constructible<T, A0>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_trivially_constructible_v<T, A0>), ""); +#endif } template <class T, class A0, class A1> void test_is_not_trivially_constructible() { static_assert((!std::is_trivially_constructible<T, A0, A1>::value), ""); +#if TEST_STD_VER > 14 + static_assert((!std::is_trivially_constructible_v<T, A0, A1>), ""); +#endif } struct A Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_has_trivially_copy_assignable() { static_assert( std::is_trivially_copy_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_trivially_copy_assignable_v<T>, ""); +#endif } template <class T> void test_has_not_trivially_copy_assignable() { static_assert(!std::is_trivially_copy_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_trivially_copy_assignable_v<T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -18,6 +18,10 @@ void test_is_trivially_copy_constructibl { static_assert( std::is_trivially_copy_constructible<T>::value, ""); static_assert( std::is_trivially_copy_constructible<const T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_trivially_copy_constructible_v<T>, ""); + static_assert( std::is_trivially_copy_constructible_v<const T>, ""); +#endif } template <class T> @@ -25,6 +29,10 @@ void test_has_not_trivial_copy_construct { static_assert(!std::is_trivially_copy_constructible<T>::value, ""); static_assert(!std::is_trivially_copy_constructible<const T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_trivially_copy_constructible_v<T>, ""); + static_assert(!std::is_trivially_copy_constructible_v<const T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -20,6 +20,12 @@ void test_is_trivially_default_construct static_assert( std::is_trivially_default_constructible<const T>::value, ""); static_assert( std::is_trivially_default_constructible<volatile T>::value, ""); static_assert( std::is_trivially_default_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_trivially_default_constructible_v<T>, ""); + static_assert( std::is_trivially_default_constructible_v<const T>, ""); + static_assert( std::is_trivially_default_constructible_v<volatile T>, ""); + static_assert( std::is_trivially_default_constructible_v<const volatile T>, ""); +#endif } template <class T> @@ -29,6 +35,12 @@ void test_has_not_trivial_default_constr static_assert(!std::is_trivially_default_constructible<const T>::value, ""); static_assert(!std::is_trivially_default_constructible<volatile T>::value, ""); static_assert(!std::is_trivially_default_constructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_trivially_default_constructible_v<T>, ""); + static_assert(!std::is_trivially_default_constructible_v<const T>, ""); + static_assert(!std::is_trivially_default_constructible_v<volatile T>, ""); + static_assert(!std::is_trivially_default_constructible_v<const volatile T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -22,6 +22,12 @@ void test_is_trivially_destructible() static_assert( std::is_trivially_destructible<const T>::value, ""); static_assert( std::is_trivially_destructible<volatile T>::value, ""); static_assert( std::is_trivially_destructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_trivially_destructible_v<T>, ""); + static_assert( std::is_trivially_destructible_v<const T>, ""); + static_assert( std::is_trivially_destructible_v<volatile T>, ""); + static_assert( std::is_trivially_destructible_v<const volatile T>, ""); +#endif } template <class T> @@ -31,6 +37,12 @@ void test_is_not_trivially_destructible( static_assert(!std::is_trivially_destructible<const T>::value, ""); static_assert(!std::is_trivially_destructible<volatile T>::value, ""); static_assert(!std::is_trivially_destructible<const volatile T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_trivially_destructible_v<T>, ""); + static_assert(!std::is_trivially_destructible_v<const T>, ""); + static_assert(!std::is_trivially_destructible_v<volatile T>, ""); + static_assert(!std::is_trivially_destructible_v<const volatile T>, ""); +#endif } struct PublicDestructor { public: ~PublicDestructor() {}}; Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_has_trivial_assign() { static_assert( std::is_trivially_move_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_trivially_move_assignable_v<T>, ""); +#endif } template <class T> void test_has_not_trivial_assign() { static_assert(!std::is_trivially_move_assignable<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_trivially_move_assignable_v<T>, ""); +#endif } class Empty Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp?rev=252406&r1=252405&r2=252406&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp Sat Nov 7 11:44:36 2015 @@ -17,12 +17,18 @@ template <class T> void test_is_trivially_move_constructible() { static_assert( std::is_trivially_move_constructible<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert( std::is_trivially_move_constructible_v<T>, ""); +#endif } template <class T> void test_has_not_trivial_move_constructor() { static_assert(!std::is_trivially_move_constructible<T>::value, ""); +#if TEST_STD_VER > 14 + static_assert(!std::is_trivially_move_constructible_v<T>, ""); +#endif } class Empty _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits