É 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?