Definiowanie elementów członkowskich przestrzeni nazw
Elementy obszaru nazw mogą zostać zdefiniowane w ramach tego obszaru nazw.Na przykład:
namespace X { void f() { } }
Elementy nazwanego obszaru nazw mogą być zdefiniowane poza obszarem nazw, w którym zostały zadeklarowane używając jawnej kwalifikacji nazwy definiowanej.Jednakże definiowana encja musi już być zadeklarowana w obszarze nazw.Ponadto definicja musi pojawić się za punktem deklaracji w obszarze nazw, który zawiera deklarację obszaru nazw.Na przykład:
// 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();
}
}