Да предположим, че имаме този код, копиран от отделен въпрос:
namespace x
{
void f()
{
}
class C
{
void f()
{
using x::f;
f(); // <==
}
};
}
Името f
на посочения ред недвусмислено се отнася до x::f
(поне според gcc и clang). Защо x::f
се предпочита пред x::C::f
в този случай? Не трябва ли да е двусмислено, тъй като се виждат и двете имена?