| // PR c++/96531 | |
| // { dg-do compile { target c++20 } } | |
| template<typename T> | |
| concept is_bool = __is_same(bool, T); | |
| template <typename... Ts> | |
| concept C = requires { | |
| requires (is_bool<Ts> || ...); | |
| }; | |
| template <bool... Bs> | |
| concept D = requires { | |
| requires (Bs || ...); | |
| }; | |
| template <typename... Ts> | |
| requires C<Ts...> | |
| void bar() {} | |
| template <bool... Bs> | |
| requires D<Bs...> | |
| void baz() {} | |
| int main() { | |
| bar<int, char, bool>(); | |
| baz<false, true, false>(); | |
| } |