1 // PR c++/88181
2 // { dg-do compile }
3 // { dg-options "-fpack-struct -g -std=c++11" }
4 
5 template <typename T> struct A { typedef T B; };
6 template <typename...> class C;
DD7 template <typename e> struct D { constexpr D (e) {} };
8 template <int, typename...> struct E;
9 template <int N, typename T, typename... U>
10 struct E<N, T, U...> : E<1, U...>, D<T> {
11   constexpr E (T x, U... y) : E<1, U...>(y...), D<T>(x) {}
12 };
13 template <int N, typename T> struct E<N, T> : D<T> {
14   constexpr E (T x) : D<T>(x) {}
15 };
16 template <typename T, typename U> struct C<T, U> : E<0, T, U> {
17   constexpr C (T x, U y) : E<0, T, U>(x, y) {}
18   void operator= (typename A<const C>::B);
19 };
20 struct F {};
21 struct G {};
22 
23 int
24 main ()
25 {
26   F f;
27   G g;
28   constexpr C<F, G> c(f, g);
29 }
30