假设我们有以下代码,复制自另一个问题:
在指示的那一行,名称
namespace x
{
void f()
{
}
class C
{
void f()
{
using x::f;
f(); // <==
}
};
}
在指示的那一行,名称
f
明确地指代x::f
(至少根据gcc和clang)。在这种情况下,为什么会优先选择x::f
而不是x::C::f
呢?两个名称都是可见的,难道不应该是模棱两可的吗?