2 // { dg-do compile { target c++17_only } }
3 // { dg-options "-fconcepts-ts -fconcepts-diagnostics-depth=2" }
5 template <class T, class U>
6 concept bool SameAs = __is_same_as(T, U);
9 concept bool R1 = requires (T& t) { // { dg-message "in requirements" }
10 { t.begin() } -> T; // { dg-error "no match" }
11 { t.end() } -> SameAs<T*>; // { dg-message "does not satisfy" }
15 concept bool R2 = requires (T& t) { // { dg-message "in requirements" }
16 { t.end() } -> SameAs<T*>; // { dg-message "does not satisfy" }
25 constexpr bool f() { return true; }
28 constexpr bool g() { return true; }
30 static_assert(f<foo>()); // { dg-error "" }
31 static_assert(g<foo>()); // { dg-error "" }