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