// { dg-do compile { target c++20 } } template constexpr bool r () { return true; } template requires r() // { dg-error "enclose" } void f() { } template requires ++N // { dg-error "enclose" } void f() { } template requires N++ // { dg-error "enclose" } void f() { } template requires N == 0 // { dg-error "enclose" } void f() { } template requires N ? true : false // { dg-error "enclose" } void f() { } template requires N = 0 // { dg-error "enclose" } void f() { } template requires N + 1 // { dg-error "enclose" } void f() { } template requires N - 1 // { dg-error "enclose" } void f() { } template requires N.x // { dg-error "enclose" } void f() { } template requires N->x && true // { dg-error "enclose" } void f() { } template requires N && N void f() { } template requires N || N void f() { } template requires N || !N // { dg-error "enclose" } void f() { } template requires N[0] // { dg-error "enclose" } void f() { } template requires static_cast(N) // { dg-error "enclose" } void f() { }