// { dg-do compile { target c++20 } }

struct a {};
template <bool> using b = a;

template <typename> struct c;
template <typename d>
  requires requires(d e) { e[0]; }
struct c<d> {
  static constexpr bool f = [] { return false; }.operator()();
};

b<c<unsigned[]>::f> b0{};