Se requiere un espacio de nombres cuando se hace referencia a la clase base
Tengo un 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?
};
¿Necesito el calificador de espacio de nombres donde Derivado se refiere a su clase base? GCC y MSVC están contentos con el código tal como está escrito, pero otro compilador se queja a menos que ponga el espacio de nombres. ¿Qué dice el estándar C ++?