namespace NS_1 { struct A {}; struct foo {}; } namespace NS_2 { template void foo(T); template void bar() { NS_1::A a; NS_2::foo(a); } template void bar(); }