// PR c++/103105 // { dg-do compile { target c++20 } } template<bool> struct A; template<class... Ts> using wrap = A<1 != (0 + ... + requires { Ts(); })>; template<class... Ts> using type = wrap<Ts...>; using ty0 = type<>; using ty0 = A<true>; using ty1 = type<int>; using ty1 = A<false>; using ty2 = type<int, int>; using ty2 = A<true>;