// { dg-do compile { target c++17_only } } | |
// { dg-options "-fconcepts" } | |
template<typename T> | |
concept bool C() { return __is_class(T); } | |
template<typename T> | |
concept bool D() { return C<T>() and __is_empty(T); } | |
struct S1 { } s1; | |
struct S2 { int n; } s2; | |
template<C T> void f1(T x) { } | |
template<D T> void f1(T x) { } | |
int main() { | |
f1(0); // { dg-error "matching" } | |
} |