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