template class A { public: class B; }; template class A::B { public: class C; }; template class A::B::C { public: A &a; };