https://gcc.gnu.org/g:101f96847629850edbdfceb11b363770be4fd69d
commit r16-5915-g101f96847629850edbdfceb11b363770be4fd69d Author: Patrick Palka <[email protected]> Date: Fri Dec 5 12:14:18 2025 -0500 libstdc++: Introduce _GLIBCXX_EXPLICIT_THIS_PARAMETER internal FTM This FTM is like __cpp_explicit_this_parameter but is also defined in earlier C++ modes if deducing this is supported as an extension by the compiler. Currently only GCC supports this, Clang doesn't. libstdc++-v3/ChangeLog: * include/bits/c++config (_GLIBCXX_EXPLICIT_THIS_PARAMETER): New. Reviewed-by: Tomasz KamiĆski <[email protected]> Reviewed-by: Jonathan Wakely <[email protected]> Diff: --- libstdc++-v3/include/bits/c++config | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index eec3a4a499dd..e6d8f186d0d4 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -927,6 +927,13 @@ namespace __gnu_cxx # define _GLIBCXX_USE_BUILTIN_TRAIT(BT) 0 #endif +// Whether deducing this is usable either officially, if in C++23 mode, or +// as an extension (Clang doesn't support the latter). +#if __cpp_explicit_this_parameter \ + || (__cplusplus >= 201103L && __GNUC__ >= 14 && !defined(_GLIBCXX_CLANG)) +# define _GLIBCXX_EXPLICIT_THIS_PARAMETER 202110L +#endif + // Mark code that should be ignored by the compiler, but seen by Doxygen. #define _GLIBCXX_DOXYGEN_ONLY(X)
