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 <[email protected]>
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 --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>