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