// Build don't link: // Origin: Theo Papadopoulo namespace Bname { class B; } template class A { friend class Bname::B; static const int a = 1; public: A() { } }; namespace Bname { class B { int a; public: template B(const T&):a(T::a) { } }; } int main() { A a; Bname::B b(a); }