考虑这个 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 错误。这两个编译器中的哪一个在这里是正确的?有什么方法可以正确引用“全局” f
吗?
编辑: Zack 建议尝试,它适用于两种编译器。对我来说看起来有点奇怪。
namespace
{
void f()
{
}
class A
{
void f();
};
}
void A::f()
{
::f();
}