1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
namespace Lib { inline namespace Lib_1 { template <typename T> class A; } template <typename T> void g(T); } struct MyClass { }; namespace Lib { template <> class A<MyClass> { }; } void someFunc() { Lib::A<MyClass> a; g(a); // ok, Lib is an associated namespace of A }