| // PR c++/66405 | |
| // { dg-do compile { target c++11 } } | |
| template <typename T, T...> struct B; | |
| template <bool... Bools> using and_c = B<bool, +Bools...>; | |
| template <typename T, typename U> using Constructible = int; | |
| template <typename... Ts> struct common_tuple { | |
| template <typename... Us, | |
| typename = and_c<Constructible<Ts, Us>{}...> > | |
| common_tuple(); | |
| void foo(); | |
| }; | |
| template <> void common_tuple<>::foo(){} |