<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63157>63157</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Class template specialisation doesn't always require constraints to match
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:frontend,
concepts
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cjdb
</td>
</tr>
</table>
<pre>
[GCC test case `concepts-ttp.C` fails on Clang](https://godbolt.org/z/bW3rsfrsG).
```cpp
// PR c++/99904
// RUN: %clang_cc1 -std=c++20 -fsyntax-only -verify %s
template<class... Ts> concept C = (Ts::value && ...);
template<class... Ts> requires C<Ts...> struct A;
template<class T> requires true struct B;
template<template<class... Ts> requires C<Ts...> class TT> struct S;
using ty1 = S<A>;
using ty2 = S<B>; // expected-error{{}}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU11vrEYM_TXmZQQaPAuEBx522ZC3qkq26mM1zAy7RLNAxybN9tdXEJLe3A9dXckCyUfneOxja6L-PDhXQXaA7BjpmS9jqMyzbaN2tLcl_1DXgh2xMJqcgFyacTBuYoqZp6SGXIpO957EOIja6-EM2RHw7sI8Eag9YAPYnEfbjp6TMZwBm38Bm_ZPFagL9ABYJiCPIPeQy7cw07RlVrL4_VEYwMMaTVmWcvcJfvzjN1B7AZiZpf5fxqQiJragjhsNpYg7ug2sX-Nx8DcRv7jQd7eFQ5vW-mV3nbxmB6o2XhMlSSJOBOpebF2LWoA6CsC709qd2r9oPzsBmAPmIkkSwBLU4Wdywf0998GRqEHVpwVYssRhNiz2PxQQp09kDrN7Jx2-R_rVB2xFTl885ulDd6Z-OAu-pesInkDVe1D338D4AR_eYLH55F4nZ9jZ2IUwBigOaxyX-Ox_ZCtlS1XqyFVpfpfLMs2LLLpUMi27zskSTWeK3KbSZrusdFluyqy0mEZ9hRKVzGWOuCuyLLGyQKNy11pZWF1a2El31b1PvH-5LusY9USzq3KVZkXkdes8rdeAuC4TqH0XxoHdYAERsF6A7QCWRHaMQrVoxe18JthJ3xPT_-rcs3dVvY713QxBkzO99j1p7sdB2NHRAFiw0P4ffaN3b5adIw66H5gEj-Kq2VyiOfjqq-Pq-TK3iRmvgM1SefvFUxifnWHAZm2SAJu1z_8CAAD__0voMZc">