1 // { dg-options "-std=c++17 -fconcepts" } 2 3 template<typename T> C()4 concept bool C() { return __is_class(T); } 5 6 template<typename T> D()7 concept bool D() { return C<T>() and __is_empty(T); } 8 9 struct S1 { } s1; 10 struct S2 { int n; } s2; 11 f1(T x)12template<C T> void f1(T x) { } f1(T x)13template<D T> void f1(T x) { } 14 main()15int main() { 16 f1(0); // { dg-error "matching" } 17 } 18