On Mon, 13 Oct 2025, Tomasz Kaminski wrote:

> I have noticed that clang defines language feature test macros when the 
> feature is supported
> in eariel mode mode, here is example of __cpp_pack_indexing
>  https://godbolt.org/z/bzsdzWboM
> 
> Could we simply do the same for __cpp_explicit_this_parameter, the selling 
> point of FTM was
> to avoid having per-version checks.

Ah I didn't realize Clang does that, it makes sense to me.  Jason, what
do you think?

> 
> On Mon, Oct 13, 2025 at 5:09 PM Patrick Palka <[email protected]> wrote:
>       Series tested on x86_64-pc-linux-gnu, does this look OK for trunk only?
> 
>       -- >8 --
> 
>       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.
>       ---
>        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)
> 
>       --
>       2.51.0.491.g4b71b29477
> 
> 
> 

Reply via email to