1 // { dg-options "-std=c++17 -fconcepts" }
2 
3 template<typename T>
4   concept bool C1 = __is_class(T);
5 
6 template<typename T>
C2()7   concept bool C2() { return __is_class(T); }
8 
9 template<typename T>
10   constexpr bool C3 = __is_class(T);
11 
12 
13 template<typename U>
14   requires C1<U>() // { dg-error "" }
f1(U)15   void f1(U) { }
16 
17 template<typename U>
18   requires C2<U> // { dg-error "invalid reference" }
f2(U)19   void f2(U) { }
20 
21 template<C3 T>  // { dg-error "not a type" }
f(T)22   void f(T) { } // { dg-error "" }
23