1 // { dg-options "-std=c++17 -fconcepts" }
3 // Check that we can evaluate constant requires-expressions
4 // as constant expressions, for the curious case when they
5 // appear within predicate constraints.
7 template<typename... Ts> struct variant { };
10 concept bool Streamable()
12 return requires (T t) { t; };
18 return requires (T t) { t; };
22 requires Streamable<T>() and not Range<T>()
23 void print(const T& x) { }
27 print("hello"); // { dg-error "cannot call" }