1 // PR c++/56395 2 3 struct A 4 { 5 template <class T> struct B { }; 6 }; 7 8 template <class T> struct D { }; 9 10 template <class T, class U> struct C 11 { 12 typedef T _Type; 13 typedef typename T::template B<_Type> _BType; 14 D<_BType> d; 15 }; 16 17 template <class T> struct C<T,T> 18 { 19 typedef T _Type; 20 typedef typename T::template B<_Type> _BType; 21 D<_BType> d; 22 }; 23 24 C<A,A> c; 25