Viewing file: concepts-requires20.C (1.3 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// { dg-do compile { target c++20 } }
template<typename ...> constexpr bool r () { return true; }
template<typename ... Ts> requires r<Ts...>() // { dg-error "enclose" } void f() { }
template<typename T, T N> requires ++N // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N++ // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N == 0 // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N ? true : false // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N = 0 // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N + 1 // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N - 1 // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N.x // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N->x && true // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N && N void f() { }
template<typename T, T N> requires N || N void f() { }
template<typename T, T N> requires N || !N // { dg-error "enclose" } void f() { }
template<typename T, T N> requires N[0] // { dg-error "enclose" } void f() { }
template<typename T, T N> requires static_cast<bool>(N) // { dg-error "enclose" } void f() { }
|