From 068c8ac17cbece8f2bf12cb75f624d89423534da Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Aug 2016 19:11:10 +0100 Subject: [PATCH] Define C++17 feature-test macros * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): Define feature-test macro. * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise. * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment. * include/std/type_traits (__cpp_lib_logical_traits): Fix value. (__cpp_lib_type_trait_variable_templates): Define. From-SVN: r239088 --- libstdc++-v3/ChangeLog | 7 +++++++ libstdc++-v3/include/bits/allocator.h | 2 ++ libstdc++-v3/include/bits/range_access.h | 4 ++++ libstdc++-v3/include/std/shared_mutex | 2 +- libstdc++-v3/include/std/type_traits | 3 ++- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0dad50cf46b..61135055e37 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,12 @@ 2016-08-03 Jonathan Wakely + * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): + Define feature-test macro. + * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise. + * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment. + * include/std/type_traits (__cpp_lib_logical_traits): Fix value. + (__cpp_lib_type_trait_variable_templates): Define. + * include/bits/stl_function.h: Remove commented-out macro. * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): Define feature-test macro. diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h index 597d3054c03..984d80075bc 100644 --- a/libstdc++-v3/include/bits/allocator.h +++ b/libstdc++-v3/include/bits/allocator.h @@ -49,6 +49,8 @@ #include #endif +#define __cpp_lib_incomplete_container_elements 201505 + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/range_access.h b/libstdc++-v3/include/bits/range_access.h index e2ec0726711..d6f8fa15f0f 100644 --- a/libstdc++-v3/include/bits/range_access.h +++ b/libstdc++-v3/include/bits/range_access.h @@ -38,6 +38,10 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#if __cplusplus >= 201402L +# define __cpp_lib_array_constexpr 201603L +#endif + /** * @brief Return an iterator pointing to the first element of * the container. diff --git a/libstdc++-v3/include/std/shared_mutex b/libstdc++-v3/include/std/shared_mutex index 6ca322b44e8..9712b358b8b 100644 --- a/libstdc++-v3/include/std/shared_mutex +++ b/libstdc++-v3/include/std/shared_mutex @@ -52,7 +52,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #ifdef _GLIBCXX_HAS_GTHREADS #if __cplusplus > 201402L -// TODO: #define __cpp_lib_shared_mutex 201505 +#define __cpp_lib_shared_mutex 201505 class shared_mutex; #endif diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index dd9f57ed2e6..693952ac012 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -156,7 +156,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #if __cplusplus > 201402L -#define __cpp_lib_logical_traits 201511 +#define __cpp_lib_logical_traits 201510 template struct conjunction @@ -2763,6 +2763,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif // __cplusplus >= 201402L #if __cplusplus > 201402L +# define __cpp_lib_type_trait_variable_templates 201510L template constexpr bool is_void_v = is_void<_Tp>::value; template -- 2.30.2