Определение членов пространства имен
Члены пространства имен могут определяться внутри соответствующего пространства имен. Например:
namespace X { void f() { } }
Члены именованного пространства имен могут определяться за его границами, если они объявлены путем явной квалификации определяемого пространства имен. Однако определяемая сущность должна быть уже объявлена в пространстве имен. Кроме того, определение должно располагаться после точки объявления в пространстве имен, окружающем то пространство имен, где находится объявление. Например:
// defining_namespace_members.cpp
// C2039 expected
namespace Q {
namespace V {
void f();
}
void V::f() { } // ok
void V::g() { } // C2039, g() is not yet a member of V
namespace V {
void g();
}
}