// PR c++/67427 // { dg-do compile { target c++20 } } // { dg-additional-options "-fconcepts" } template <bool... Values> struct and_c_impl { static constexpr bool value = true; }; template <bool ValueFirst, bool... ValuesRest> struct and_c_impl<ValueFirst, ValuesRest...> { static constexpr bool value = ValueFirst && and_c_impl<ValuesRest...>::value; }; template <bool... Values> constexpr bool and_c() { return and_c_impl<Values...>::value; } template<class T> concept C = true; template<class... Tx> struct A { A() requires (and_c<C<Tx>...>()) = default; }; int main() { A<int, double> a; return 0; }