https://gcc.gnu.org/g:88e9cc95abd8fe3a7f506f1791b08c32d36cd760

commit r16-4172-g88e9cc95abd8fe3a7f506f1791b08c32d36cd760
Author: François Dumont <[email protected]>
Date:   Wed Oct 1 07:09:36 2025 +0200

    libstdc++: Avoid _GLIBCXX20_CONSTEXPR in C++ >= 20 code sections
    
    libstdc++-v3/ChangeLog:
    
            * include/std/vector (std::erase_if, std::erase): Replace 
_GLIBCXX20_CONSTEXPR
            with 'constexpr' and remove implied 'inline' keyword.
            * include/std/string (std::erase_if, std::erase): Likewise.

Diff:
---
 libstdc++-v3/include/std/string | 6 ++----
 libstdc++-v3/include/std/vector | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string
index 4b84aeaa857b..97ded057a87b 100644
--- a/libstdc++-v3/include/std/string
+++ b/libstdc++-v3/include/std/string
@@ -95,8 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   template<typename _CharT, typename _Traits, typename _Alloc,
           typename _Predicate>
-    _GLIBCXX20_CONSTEXPR
-    inline typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type
     erase_if(basic_string<_CharT, _Traits, _Alloc>& __cont, _Predicate __pred)
     {
       using namespace __gnu_cxx;
@@ -110,8 +109,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   template<typename _CharT, typename _Traits, typename _Alloc,
           typename _Up _GLIBCXX26_DEF_VAL_T(_CharT)>
-    _GLIBCXX20_CONSTEXPR
-    inline typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type
     erase(basic_string<_CharT, _Traits, _Alloc>& __cont, const _Up& __value)
     { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
 
diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector
index cdc30cbff6de..3146f283944a 100644
--- a/libstdc++-v3/include/std/vector
+++ b/libstdc++-v3/include/std/vector
@@ -112,8 +112,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   template<typename _Tp, typename _Alloc, typename _Predicate>
-    _GLIBCXX20_CONSTEXPR
-    inline typename vector<_Tp, _Alloc>::size_type
+    constexpr typename vector<_Tp, _Alloc>::size_type
     erase_if(vector<_Tp, _Alloc>& __cont, _Predicate __pred)
     {
       using namespace __gnu_cxx;
@@ -134,8 +133,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   template<typename _Tp, typename _Alloc,
           typename _Up _GLIBCXX26_DEF_VAL_T(_Tp)>
-    _GLIBCXX20_CONSTEXPR
-    inline typename vector<_Tp, _Alloc>::size_type
+    constexpr typename vector<_Tp, _Alloc>::size_type
     erase(vector<_Tp, _Alloc>& __cont, const _Up& __value)
     { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }

Reply via email to