diff mbox

Define C++17 feature-test macros

Message ID 20160803181040.GA28113@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely Aug. 3, 2016, 6:10 p.m. UTC
This just defines feature-test macros for some C++17 features that we
already support.

	* 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.

Tested powerpc64-linux, committed to trunk.
commit b607d0af6b72cbcef36d2aa107e98285fe133245
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 3 18:06:50 2016 +0100

    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.
diff mbox

Patch

diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h
index 597d305..984d800 100644
--- a/libstdc++-v3/include/bits/allocator.h
+++ b/libstdc++-v3/include/bits/allocator.h
@@ -49,6 +49,8 @@ 
 #include <type_traits>
 #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 e2ec072..d6f8fa1 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 6ca322b..9712b35 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 dd9f57e..693952a 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<typename... _Bn>
     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 <typename _Tp>
   constexpr bool is_void_v = is_void<_Tp>::value;
 template <typename _Tp>