2 // { dg-options "-std=c++17 -fconcepts" }
6 // Check partial ordering during overload resolution.
9 concept bool C() { return __is_class(T); }
12 concept bool D() { return C<T>() and __is_empty(T); }
15 struct S2 { int n; } s2;
19 template<C T> void f1(T x) { called = 1;}
20 template<D T> void f1(T x) { called = 2;}
23 f1(s1); assert(called == 2);
24 f1(s2); assert(called == 1);