1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// Contributed by Dodji Seketeli <dodji@redhat.com> // Origin PR c++/39754 // { dg-do compile } template < typename > struct A ; template < typename T , typename = A < T > > struct B { } ; template < class W , class > struct D { typedef W X ; A< X()> a ; }; template < class Y > struct E { B< Y()> b ; }; E<int> e ;