[gcc r16-4172] libstdc++: Avoid _GLIBCXX20_CONSTEXPR in C++ >= 20 code sections
Francois Dumont
fdumont@gcc.gnu.org
Wed Oct 1 19:54:15 GMT 2025
https://gcc.gnu.org/g:88e9cc95abd8fe3a7f506f1791b08c32d36cd760
commit r16-4172-g88e9cc95abd8fe3a7f506f1791b08c32d36cd760
Author: François Dumont <frs.dumont@gmail.com>
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)); }
More information about the Libstdc++-cvs
mailing list