У меня такой код:
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?
};
Нужен ли мне определитель пространства имен, где Derived ссылается на его базовый класс? GCC и MSVC довольны кодом, написанным, но другой компилятор жалуется, если я не помещаю пространство имён. Что говорит стандарт С++?