// { 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() { }

