<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62291>62291</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang][concepts] Out-of-line defn of constrained member template of class template is incorrectly rejected
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ericniebler
</td>
</tr>
</table>
<pre>
Pretty sure the following should compile:
```c++
template <class... T>
concept A = true;
template <class F>
struct S {
template <A<S<F>> T>
void operator()(T);
};
template <class F>
template <A<S<F>> T>
inline void S<F>::operator()(T) {}
```
Result:
```
<source>:12:19: error: out-of-line definition of 'operator()' does not match any declaration in 'S<F>'
inline void S<F>::operator()(T) {}
^~~~~~~~
1 error generated.
Compiler returned: 1
```
https://godbolt.org/z/3nnc7rEhb
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykU82O2ywUfZrrzVUsG-K_hReZJN5-nzrzAhjfxFQYIsAzShd99gp7mkln2qpVEQIMHM45mCO8V2dD1ELxAMUhEXMYrWvJKWkU9Zpc0tvh2v7vKIQr-tkRhpHwZLW2L8qc0Y921gNKO12UJuA7yA6QfW_LbK0S2EOsy2yg6aJFIAS-l1p4n6YpPgE_rsvSGkmXgDsEfsDgZgL-cH_qBzx2N7APbpYBHxGqVwzi_f4d8P0j8P2C4Mc7Wny2akB7ISeCdcBqYA2w-il2N_7q8Bda_oxXGa0MrexvO3bAdz_VshirDu_u917SJ_KzDr_6E6-ffO_t7CStZDmLTQN8h-ScdXFg57Cxp80ibqCTMiooa9CeEFj1XlqFgyWPxgacRJAjCnPFgaQWTiwwZSLs5o9V_24ePxQojl_Xsu7IVzd4JhMPoyFd5_frY3XoKMzO0BD95r-50jGEi4-6WAesO9uhtzqk1p2BdV-AddwYWbnj2CdDy4eGNyKhNi9rlrNtWRbJ2G4zauoiFzXPqjqvmCirU0a8kVm-PbFaJqplGePZlrEsK_KsSPucKKvqkpXNkJ9ECduMJqF0qvXzFLkT5f1MbclYkyda9KT9EmPGDL3gsgiMxVS7NmI2_Xz2sM208sG_nRJU0Ev-pRbmDMUhDtcIeigO-N-P72B5AdIaH5xQhgacaOrJvYUsLi9BuM0oj8pI6xzJoK_o6DPJQEMyO92-u1kVxrlPpZ2AdVHha7e5OBtBwLrFlwfWLb6_BQAA__8nOmTN">