У меня был следующий код, который был в основном,
class foo {
public:
void method();
};
void foo::foo::method() { }
Я случайно добавил дополнительный foo:: перед определением foo:: method. Этот код скомпилирован без предупреждения с помощью g++ (версия 4.2.3), но с ошибкой в Visual Studio 2005. У меня не было пространства имен с именем foo.
Какой компилятор прав?