Compiler Error C2888

'identifier' : symbol cannot be defined within namespace 'namespace'

A symbol belonging to namespace A must be defined in a namespace that encloses the namespace A. Otherwise, an error is generated.

The following is an example:

namspace M {
   namespace N {
      void f1();
      void f2();
   }
   void N::f1() {...   //OK: namspace M encloses N
   }
}

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