Error del compilador C2888

"identifier": no se puede definir el símbolo dentro del espacio de nombres "namespace"

Un símbolo que pertenezca al espacio de nombres A debe definirse en un espacio de nombres que incluya A.

En el ejemplo siguiente se genera 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
}