[Bug c++/110604] New: template argument deduction failed with decltype(lambda)
ted at lyncon dot se
gcc-bugzilla@gcc.gnu.org
Sun Jul 9 13:47:45 GMT 2023
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.
More information about the Gcc-bugs
mailing list