<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">