[gcc r9-9482] libstdc++: Fix inconsistent feature test macro

Jonathan Wakely redi@gcc.gnu.org
Fri Apr 30 22:02:32 GMT 2021


https://gcc.gnu.org/g:f8885c45668b7f7470ec0e7ff334d20b45625a12

commit r9-9482-gf8885c45668b7f7470ec0e7ff334d20b45625a12
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Apr 30 20:32:05 2021 +0100

    libstdc++: Fix inconsistent feature test macro
    
    The __cpp_lib_constexpr_string feature test macro is not defined
    consistently in <version> and <string>.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/basic_string.h (__cpp_lib_constexpr_string):
            Only define for C++17 and later.
    
    (cherry picked from commit 3215d4f5b3d08e0087a88df9e155c779927ace1a)

Diff:
---
 libstdc++-v3/include/bits/basic_string.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index fbca63bb3aa..6c11135fa8c 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -52,7 +52,10 @@ namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-#define __cpp_lib_constexpr_string 201611L
+#if __cplusplus >= 201703L
+// Support P0426R1 changes to char_traits in C++17.
+# define __cpp_lib_constexpr_string 201611L
+#endif
 
 #if _GLIBCXX_USE_CXX11_ABI
 _GLIBCXX_BEGIN_NAMESPACE_CXX11


More information about the Libstdc++-cvs mailing list