| // PR c++/69851 | |
| // { dg-do compile } | |
| // { dg-options "-std=c++11" } | |
| template <typename T> | |
| struct A { T a; }; | |
| template <unsigned long, typename...> | |
| struct B; | |
| template <unsigned long N, typename T, typename... U> | |
| struct B<N, T, U...> : B<1, U...>, A<T> | |
| { | |
| B (B &) = default; | |
| B (B &&x) : B(x) {} | |
| }; | |
| template <unsigned long N, typename T> | |
| struct B<N, T> {}; | |
| struct C { C (C &); }; | |
| struct D {}; | |
| void | |
| foo (B<0, C, D, int, int> a) | |
| { | |
| B<0, C, D, int, int> b (a); | |
| } |