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 <jwak...@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 --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>