Ошибка компилятора C2888Compiler Error C2888

"идентификатор": символ не может быть определен в пространстве имен "пространство имен"'identifier' : symbol cannot be defined within namespace 'namespace'

Символ, принадлежащий пространству имен A, должен быть определен в пространстве имен, который заключает в себя.A symbol belonging to namespace A must be defined in a namespace that encloses A.

Следующий пример приводит к возникновению ошибки C2888:The following sample generates C2888:

// C2888.cpp
// compile with: /c
namespace M {
   namespace N {
      void f1();
      void f2();
   }

   void N::f1() {}   // OK: namspace M encloses N
}

namespace O {
   void M::N::f2() {}   // C2888 namespace O does not enclose M
}