Only define __cpp_lib_constexpr_char_traits for C++17
authorJonathan Wakely <jwakely@redhat.com>
Fri, 15 Jun 2018 15:47:56 +0000 (16:47 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 15 Jun 2018 15:47:56 +0000 (16:47 +0100)
* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
define for C++17 and above.

From-SVN: r261634

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/char_traits.h

index 31c8f36952029acb55625a521e84af8b3f780df5..cf6bfc9509a286f49c8d635ac2d2bbd2de803f49 100644 (file)
@@ -1,5 +1,8 @@
 2018-06-15  Jonathan Wakely  <jwakely@redhat.com>
 
+       * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
+       define for C++17 and above.
+
        LWG 2993 reference_wrapper<T> conversion from T&&
        * doc/xml/manual/intro.xml: Document LWG 2993 change.
        * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
index 51cd321b8aea714f4f83539e0d2aec43d36e0ea2..7cc7c74e8fe8403ae8c5b12438e866b3a66d45ab 100644 (file)
@@ -143,8 +143,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
     };
 
-#define __cpp_lib_constexpr_char_traits 201611
-
   template<typename _CharT>
     _GLIBCXX14_CONSTEXPR int
     char_traits<_CharT>::
@@ -216,7 +214,9 @@ namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
+#define __cpp_lib_constexpr_char_traits 201611
+
   /**
    *  @brief Determine whether the characters of a NULL-terminated
    *  string are known at compile time.
@@ -299,7 +299,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX17_CONSTEXPR int
       compare(const char_type* __s1, const char_type* __s2, size_t __n)
       {
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
        if (__builtin_constant_p(__n)
            && __constant_char_array_p(__s1, __n)
            && __constant_char_array_p(__s2, __n))
@@ -313,7 +313,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX17_CONSTEXPR size_t
       length(const char_type* __s)
       {
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
        if (__constant_string_p(__s))
          return __gnu_cxx::char_traits<char_type>::length(__s);
 #endif
@@ -323,7 +323,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX17_CONSTEXPR const char_type*
       find(const char_type* __s, size_t __n, const char_type& __a)
       {
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
        if (__builtin_constant_p(__n)
            && __builtin_constant_p(__a)
            && __constant_char_array_p(__s, __n))
@@ -408,7 +408,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX17_CONSTEXPR int
       compare(const char_type* __s1, const char_type* __s2, size_t __n)
       {
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
        if (__builtin_constant_p(__n)
            && __constant_char_array_p(__s1, __n)
            && __constant_char_array_p(__s2, __n))
@@ -423,7 +423,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX17_CONSTEXPR size_t
       length(const char_type* __s)
       {
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
        if (__constant_string_p(__s))
          return __gnu_cxx::char_traits<char_type>::length(__s);
        else
@@ -434,7 +434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX17_CONSTEXPR const char_type*
       find(const char_type* __s, size_t __n, const char_type& __a)
       {
-#if __cplusplus > 201402
+#if __cplusplus >= 201703L
        if (__builtin_constant_p(__n)
            && __builtin_constant_p(__a)
            && __constant_char_array_p(__s, __n))