https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120611
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Clang exposes __invoke but it is private: <source>:2:35: error: '__invoke' is a private member of '(lambda at <source>:2:18)' 2 | return decltype([]{return 42;})::__invoke(); | ^ <source>:2:18: note: implicitly declared private here 2 | return decltype([]{return 42;})::__invoke(); | ^ Both are implementation namespaces but both are exposed (though clang makes their static function private). I am not sure there is anything to fix here.