https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100091
Bug ID: 100091 Summary: decltype([]{}) rejected as a default template parameter Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pilarlatiesa at gmail dot com Target Milestone: --- This piece of code is accepted by 10.2, but rejected by yesterday's (20210414) snapshot: $ cat test.cpp template<typename = decltype([]{})> void f() {} $ ../GCC-11/bin/g++ -std=c++20 -c test.cpp test.cpp:2:30: error: lambda-expression in template parameter type 2 | template<typename = decltype([]{})> | It's a recent change in behaviour. Possibly caused by r11-8166-ge1666ebd9ad31dbd8b9b933c883bdd882cfd1522. I'm labeling this as rejects-valid because I believe [basic.def.odr]/14 allows such an use of a lambda, but I hardly understand that wording.