É um espaço de nome necessário ao se referir à classe base

Eu tenho um código como este:

namespace N {
   class B {
     public:
       virtual void doStuff(B *) = 0;
    };
 }

 // not in a namespace
 class Derived : public N::B {
   public:
       void doStuff(B *); // Should this be N::B, or is B ok?
 };

Preciso do qualificador de espaço para nome em que Derivado se refere à sua classe base? O GCC e o MSVC estão satisfeitos com o código, mas outro compilador reclama, a menos que eu coloque o espaço para nome. O que o padrão C ++ diz?

questionAnswers(1)

yourAnswerToTheQuestion