<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62916>62916</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Hard error for a lambda in unevaluated context
</td>
</tr>
<tr>
<th>Labels</th>
<td>
c++20,
clang:frontend,
lambda
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
usx95
</td>
</tr>
</table>
<pre>
GCC: `g++.dg/cpp2a/lambda-uneval16.C`
```cpp
template <class T,
bool = []() -> bool { // error: non-type template argument is not a constant expression
if constexpr (requires { typename T::type; }) return true;
return false;
}()>
struct p {using type = int; };
template <class T>
using P = typename p<T>::type;
```
https://godbolt.org/z/r19fMx7d3
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsU8uOpDgQ_JrkYlWJSvM8cKhHs3tZaQ_9AwYnlEfGZvxoVc_XjwxdPepRIySwMxyRkQTCezUbog7KC5S3TMRwt66L_tGW2WDle_fP9Qr8zKDKZ8AL4OUoZ8B-XFcUgL0WyyDFIRp6E_pUHa9Q5ZDfID-nl-0e13XfCbSsWgRiwK-jFt6zV8DrXmODtZoBv7G9E8AGsGUH4C8fpfrCAHvAnpFz1qWmjDWH8L4S-2QWbo4LmcCUZ8YGJthojQ_CBEaP1ZH3ypoPxS-XmnZkQjHAxtHPqBz5TTdpGLEQewV-Bn5Oa-AXBvUtNekoRGdYcDHtfsf-gZiE9t9BNp7kF_jLXvPBxTGwNclHr8y89bDNR5nw1H4yfTfYJ9N--v_t6KePFfh1g3y18_W77ct7CKtPuG32s5WD1eFoXQrBL8Dendrpv0cteSY7Llveioy6U9UULedtVWb3jgYxTCOvh4K3ohInUYwj1VKU1ZRzmppMdZgjz0ssTvyERX6sJ1kPsqjLvGlKWTRQ5LQIpY9avy1JO1PeR-oqbE9VpsVA2m8JRhz3kGIOiClciKMWZgZ-npw1gYz8LOzRTcvylrkucR-GOHsocq188H_Uggqaun-Fk3v22GQdE2wnYMqwPf5RBJIpRoEeIYtOd38NT4V7HI6jXdKPo9-ej8Pq7A8aA2C_-fKA_WbtdwAAAP__VO0SEw">