// { dg-do compile { target c++17 } } // { dg-options "-fconcepts" } template concept C1 = __is_class(T); template concept C2 = __is_class(T); template constexpr bool C3 = __is_class(T); template requires C1 void f1(U) { } template requires C2 void f2(U) { } template // { dg-error "not a type" } void f(T) { } // { dg-error "declared void|not declared" } void foo() { struct S { } s; f2(s); // f2(0); }