blob: 5087344d2c9088dddcd7447982f7de764b5eebd9 [file] [log] [blame]
// PR c++/67427
// { dg-do compile { target c++20 } }
// { dg-additional-options "-fconcepts-ts" }
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 bool C() {
return true;
}
template<class... Tx>
struct A {
A() requires and_c<C<Tx>()...>() = default;
};
int main() {
A<int, double> a;
return 0;
}