https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119394
Bug ID: 119394 Summary: Add fixit hint suggesting adding () to [] noexcept {} in C++ < 23 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redbeard0531 at gmail dot com Target Milestone: --- Note that clang alread does this: https://godbolt.org/z/73T38rWM7 void foo(auto){} void test() { foo([] noexcept {}); } No fixit when running `g++ -std=c++20 -Wall -Werror`: <source>: In function 'void test()': <source>:3:12: error: parameter declaration before lambda exception specification only optional with '-std=c++23' or '-std=gnu++23' [-Werror=c++23-extensions] 3 | foo([] noexcept {}); | ^~~~~~~~ cc1plus: all warnings being treated as errors Clang20 output with fixit: <source>:3:12: error: lambda without a parameter clause is a C++23 extension [-Werror,-Wc++23-extensions] 3 | foo([] noexcept {}); | ^ | () 1 error generated. It might also be better to just replace the technical sounding "parameter declaration before lambda exception specification" with just "() before noexcept on a lambda" which I think will be easier for the mythical "normal C++ developer" to understand.