Предположим, у нас есть этот код, скопированный из отдельного вопроса:
namespace x
{
void f()
{
}
class C
{
void f()
{
using x::f;
f(); // <==
}
};
}
Имя f
в указанной строке однозначно относится к x::f
(по крайней мере, согласно и gcc, и clang). Почему в данном случае x::f
предпочтительнее x::C::f
? Разве это не должно быть двусмысленно, поскольку видны оба имени?