Рассмотрим этот фрагмент кода С++:
namespace
{
void f()
{
}
class A
{
void f()
{
::f(); // VC++: error C2039: 'f' : is not a member of '`global namespace''
}
};
}
GCC компилирует это просто отлично. Visual С++ 2008 не удается скомпилировать ошибку C2039. Какой из этих двух компиляторов прав здесь? Есть ли способ правильно ссылаться на этот "глобальный" f
?
Изменить: Зак предложил попробовать, и он работает с обоими компиляторами. Мне немного странно.
namespace
{
void f()
{
}
class A
{
void f();
};
}
void A::f()
{
::f();
}