<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62637>62637</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang fails to parse initializer list inside template arguments
</td>
</tr>
<tr>
<th>Labels</th>
<td>
c++20,
clang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ilya-biryukov
</td>
</tr>
</table>
<pre>
```cpp
struct X {int a;};
template <X> int foo();
void test() {
foo<{1}>(); // <- Clang errors with 'expected expression'
}
```
This is allowed by C++20 and supported by GCC and MSVC, see [godbolt](https://gcc.godbolt.org/z/5d93qnWjh).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUkFznDwM_TXiotkdrxxgOXAIbPhO36mdNldjBDj1YmqbJJtf3wE26UxnGAF60vN7slQIZpiYS0grSC-JWuLofGnsTR1a42_LL_eatK67lZCJ_dHzDOIC4jFEv-iIzwh5ZaaICmQF-WWNG77HyNfZqsgIsn4G-YRrae8c0Bmo-Cp-dabDyCHu-ZVzB7ZaWUNenTbyp69GBGqAmpX4gLVV04DsvfMB30wcESjn95l15A75ffYcgnETUH5Xl1_uH5_G9t_vowloAipr3Rt32N6wBqqAKhKopg7DMs_Oxx36r6635P_fftRANQZmhLQaXNc6GyG9AJ3HGOcA8nGXO2h9vMNH5weg5gOoSbtC_p5-voxAxXEXknSl7ApZqITLU3aWucxTSpOxPHGvi4K7cyF1r4XShUrTrBVnJYXK8jYxJQmSIj2JU5aSSI89c8_6Qee5zFuhGB4EX5WxR2tfr6uKxISwcJlRJvPEqpZt2DaCSH96ByKges2skwb52Hs3RZ66FUgviS9XskO7DAEehDUhhr_00UTL5X5HvTI2YHQ4Kx8YzWSiUdZ8sMe1C80UTMf4tTfKD8uVpxiSxdvyn2GaOC7tUbsrULOedn8dZu9eWEegZnMWgJrN3J8AAAD__w0n4w4">