From 4661094069c52581fda8e3ae6493131df7d0b1e8 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 6 Mar 2019 15:31:06 +0000 Subject: [PATCH] Add feature test macro for bounded array traits * include/std/type_traits (__cpp_lib_bounded_array_traits): Define. * include/std/version (__cpp_lib_bounded_array_traits): Likewise. * testsuite/20_util/is_bounded_array/value.cc: Check for macro. * testsuite/20_util/is_unbounded_array/value.cc: Likewise. From-SVN: r269426 --- libstdc++-v3/ChangeLog | 7 +++++++ libstdc++-v3/include/std/type_traits | 2 ++ libstdc++-v3/include/std/version | 1 + libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc | 6 ++++++ libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc | 6 ++++++ 5 files changed, 22 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4cbdc80aa08..2559fa3c1ec 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2019-03-06 Jonathan Wakely + + * include/std/type_traits (__cpp_lib_bounded_array_traits): Define. + * include/std/version (__cpp_lib_bounded_array_traits): Likewise. + * testsuite/20_util/is_bounded_array/value.cc: Check for macro. + * testsuite/20_util/is_unbounded_array/value.cc: Likewise. + 2019-03-06 Edward Smith-Rowland <3dw4rd@verizon.net> PR libstdc++/86655 - std::assoc_legendre should not constrain diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index a1161d50399..c3cb67a457d 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -3074,6 +3074,8 @@ template template using unwrap_ref_decay_t = typename unwrap_ref_decay<_Tp>::type; +#define __cpp_lib_bounded_array_traits 201902L + /// True for a type that is an array of known bound. template struct is_bounded_array diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version index 785e8966dbf..668b477e24d 100644 --- a/libstdc++-v3/include/std/version +++ b/libstdc++-v3/include/std/version @@ -148,6 +148,7 @@ #if __cplusplus > 201703L // c++2a +#define __cpp_lib_bounded_array_traits 201902L #if __cpp_impl_destroying_delete # define __cpp_lib_destroying_delete 201806L #endif diff --git a/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc b/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc index 9f37d36e532..47ecae8ca05 100644 --- a/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc @@ -21,6 +21,12 @@ #include #include +#ifndef __cpp_lib_bounded_array_traits +# error "Feature test macro for is_bounded_array is missing" +#elif __cpp_lib_bounded_array_traits < 201902L +# error "Feature test macro for is_bounded_array has wrong value" +#endif + void test01() { using std::is_bounded_array; diff --git a/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc b/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc index 28a77b21da2..19fb0524cd8 100644 --- a/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc @@ -21,6 +21,12 @@ #include #include +#ifndef __cpp_lib_bounded_array_traits +# error "Feature test macro for is_unbounded_array is missing" +#elif __cpp_lib_bounded_array_traits < 201902L +# error "Feature test macro for is_unbounded_array has wrong value" +#endif + void test01() { using std::is_unbounded_array;