// { dg-do compile { target c++17 } } // { dg-options "-fconcepts" } template concept C1 = __is_same_as(T, int); template concept C2 = N == 0; template class X> concept C3 = true; template struct Foo; template struct S1; template struct S1 { }; template struct S2; // { dg-error "does not constrain a type" } template struct S2 { }; // { dg-error "does not constrain a type" } template struct S3; // { dg-error "does not constrain a type" } template struct S3 { }; // { dg-error "does not constrain a type" } S1 s1; // OK S1<> s11; S2<0, 0, 0> s2; S2<> s22; // { dg-error "" } S3 s3; // { dg-error "" } S3<> s33; // { dg-error "" }