aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-03-06 15:31:06 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-03-06 15:31:06 +0000
commit4661094069c52581fda8e3ae6493131df7d0b1e8 (patch)
tree234c37e259632dc63da44191aa570c2e1dab9cdb
parent0e1a6d27009cf81ff7114f8ca4b8c71f122774b4 (diff)
downloadgcc-4661094069c52581fda8e3ae6493131df7d0b1e8.zip
gcc-4661094069c52581fda8e3ae6493131df7d0b1e8.tar.gz
gcc-4661094069c52581fda8e3ae6493131df7d0b1e8.tar.bz2
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
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/std/type_traits2
-rw-r--r--libstdc++-v3/include/std/version1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc6
5 files changed, 22 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4cbdc80..2559fa3 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2019-03-06 Jonathan Wakely <jwakely@redhat.com>
+
+ * 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 a1161d5..c3cb67a 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -3074,6 +3074,8 @@ template <typename _From, typename _To>
template<typename _Tp>
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<typename _Tp>
struct is_bounded_array
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index 785e896..668b477 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 9f37d36..47ecae8 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 <type_traits>
#include <testsuite_tr1.h>
+#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 28a77b2..19fb052 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 <type_traits>
#include <testsuite_tr1.h>
+#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;