https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112749
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |DUPLICATE CC| |ppalka at gcc dot gnu.org Status|UNCONFIRMED |RESOLVED --- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> --- Thanks for the bug report, I think this is pretty much a dup of PR102419. GCC is behaving correctly here: the normal form of the constraint C1<W1<T>> is just 'true (with empty parameter mapping)' which is independent of the template parameter, so the constraint is trivially satisfied for any choice of T. To get the behavior you desire, define C1 in a way that depends on its template parameter e.g. template<class T> concept C1 = requires { typename T; }; *** This bug has been marked as a duplicate of bug 102419 ***