https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110604
Bug ID: 110604 Summary: template argument deduction failed with decltype(lambda) Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ted at lyncon dot se Target Milestone: --- Compiling this in C++20 mode on trunk (https://godbolt.org/z/dW5cf3WrK): ``` template<typename> struct foo { template<typename = decltype([]{})> void bar() {} }; int main() { [[maybe_unused]] auto v = foo<void>(); v.bar<>(); v.bar(); } ``` Results in the following error: ``` <source>: In function 'int main()': <source>:10:12: error: no matching function for call to 'foo<void>::bar<>()' 10 | v.bar<>(); | ~~~~~~~^~ <source>:4:10: note: candidate: 'template<class> void foo< <template-parameter-1-1> >::bar() [with <template-parameter-1-1> = void]' 4 | void bar() {} | ^~~ <source>:4:10: note: template argument deduction/substitution failed: <source>:11:10: error: no matching function for call to 'foo<void>::bar()' 11 | v.bar(); | ~~~~~^~ <source>:4:10: note: candidate: 'template<class> void foo< <template-parameter-1-1> >::bar() [with <template-parameter-1-1> = void]' 4 | void bar() {} | ^~~ <source>:4:10: note: template argument deduction/substitution failed: ``` Possibly a duplicate of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102721, but I'm not 100% sure.