1 // PR c++/94057 - template keyword in a typename-specifier.
2 // { dg-do compile { target c++11 } }
3 
4 template<typename T> struct A {
5   template<typename U> struct B {
6     typedef int TT;
7     typedef int TT2;
8     typedef int TT3;
9     typedef int TT4;
10   };
11 };
12 
13 struct X : A<int>::B<int> {
14   using A<int>::template B<int>::TT;
15   using typename A<int>::template B<int>::TT2;
16   using A<int>::B<int>::TT3;
17   using typename A<int>::B<int>::TT4;
18 };
19