<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/153445>153445</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Default arguments followed by ellipsis not allowed in in-class function declarations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ckwastra
</td>
</tr>
</table>
<pre>
Test code ([CE](https://godbolt.org/z/sonKejdv1)):
```cpp
void f(int = {}...); // OK
struct S {
void f(int = {}...); // Clang: error: unexpected end of default
// argument expression
void g(int...); // OK
};
void S::g(int = {}...) {} // OK
```
As shown above, this syntax compiles fine for function declarations outside the class, but not for in-class ones. This is inconsistent behavior.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMk8FunDAQhp9muIyCwCzLcuDAZruXHHpIXsDYAzj12shjdpM-fQVsG7VKpKKRMGbmY-bnt2Q2gyNqoDxCeUrkHEcfGvXjJjkGmXRevzcvxBGV14QgDlAeH79BeQJxGGOcGIoWxBnEefC68zamPgwgzj9BnNm7J3rV1xxEvUTRQrbGPttCTRNk7dUbjT2Ig3ERoTghVEeoTmmarkVH3Pj4_Wkr5xhmFfF5zctaxP8FPFrpBihapBB8WBazo7eJVCSN5DT6HjX1crZx5X563VkyDPOFXER6mwIxG-8-ehm2Xr6YoDpBcdxGWbOfF2GKdvhigPvD34zfCm6YlpFHf3MoO38lEI8YR8PI7y7KN1T-MhlLjL1xhL0P2M9OReMdalJWBrmsGf0c2WjCOBIqK5kXUDdHdD6uZcY9rPvoHXGKL8s3lnDKOzYcFzk6GuXV-JBC1ia6KXRd1DKhJq_KMs_yqtgnY0M1VVlf9HVfVr3ek6p26tBrkp2sta6qxDQiE2V2yIt8n5dFmQpRi0wdCpFXO6qph11GF2lsau31slguMcwzNXlZ7HZlYmVHlldTC-HohutbEGLxeGiWooduHhh2mTUc-QMTTbTUnDYX_PnLjL231t9IY_eOZK2Z2PAqjLzvG_ehz6f6JnOwzT9HxsRx7lLlLyDOSwv328MU_CupCOK8Ns4gzvfJro34FQAA___4oCDr">