]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Introduce _GLIBCXX_EXPLICIT_THIS_PARAMETER internal FTM
authorPatrick Palka <ppalka@redhat.com>
Fri, 5 Dec 2025 17:14:18 +0000 (12:14 -0500)
committerPatrick Palka <ppalka@redhat.com>
Fri, 5 Dec 2025 17:14:18 +0000 (12:14 -0500)
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 <tkaminsk@redhat.com>
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/include/bits/c++config

index eec3a4a499dd7255c472d8f3a7db8aa1b5fb0170..e6d8f186d0d4f82c43dccedb184863b70d7f896b 100644 (file)
@@ -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)