<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56284>56284</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Template lambda instantiation fails
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
goedderz
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/hEnfvn64W
In short, the instantiation of
```cpp
auto lambda2 = [&]<typename F>(F&& f) {
return [&]<typename T>(T&& t) {
if constexpr (std::is_same_v<std::decay_t<T>, Unit>) {
return std::forward<F>(f)();
} else {
return std::forward<F>(f)(t);
}
};
};
lambda2([](int i) { return i; })(0);
```
fails unexpectedly.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylk02P2yAQhn8NvqBGXvwVH3zIJhup91Q9RtiMbSoClhlnm_31HZxs1l1leymygRngmRcGaqcuVY84eJZsmNjT1zlVO4MrN3ZkvdHfv9j2bPP0J4t3LN5c6--W-96NyMSWYw9cW4_SopaoneWuXc5leXz9mmFY-jkVOaHjRp5qJQVnyY6z7JmJnGU7lmzxMoCVJ-B7lrwwsd6HEZHzlomSs-L5AxPKCDiN9jHgcAUcbgB8CAhFt7xxtBf4PYycVnhU4WiSjfZHT6TjmbB3p4JGXo5IrmuALf9hNc7dL_gLoXdK68ZXOZKxve0z7I-aUCcPGKzYcTAe_j8C_iPE387gWE5c2h_eWyKDdsoCpUCstUWub8fxrkvT0pkwi4iXIu53ZYlupTaeT5aSAg2CMpdVpKpElUkpI9RooKJ4jZG2o6D8AKfBSISbnE93c4ZF02g-X3yN_VSvGnciw5jze_NtGN0vCkum9n4CT50sF-s06ivIZL5WTSkbKFIl6zRRT01ZF3Up4UlBHhlZU6aq-U4KC698RlCfdEa6ErEQcS7KuEyzJFtlTdkqmZUiKxohizVLYziR3FXQEV5kNFazpHrqPA0a7dF_DErvdWdhPozAp7dFT7TqHCgF41s0x65m7X8AImoaZw">