1 template <class T0>
2 class A {
3 public:
4   class B;
5 };
6 
7 template <class T0>
8 class A<T0>::B {
9 public:
10   class C;
11 };
12 
13 template <class T0>
14 class A<T0>::B::C {
15 public:
16   A<T0> &a;
17 };
18