Erro do Compilador C2888

“identificador”: o símbolo não pode ser definido no namespace “namespace”

Um símbolo que pertence ao namespace A deve ser definido em um namespace que inclui A.

O seguinte exemplo gera 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
}