// Build don't link: template struct A { static void f(); }; template class B { friend class A; static int i; // ERROR - private }; template class C { template friend class A; static int i; }; template void A::f() { B::i = 3; C::i = 3; C::i = 3; B::i = 3; // ERROR - member `i' is private } template void A::f();