Possible Duplicate:
What is "Argument-Dependent Lookup" (aka ADL, or "Koenig Lookup")?
Why does C++ parameter scope affect function lookup within a namespace?
Сегодня я испытал это странное поведение. Сначала я могу вызвать странную Fn без using namespace Strange
, но не разрешаю вызывать странную Fn2 Почему?
namespace Strange
{
struct X
{
};
void strangeFn(X&) {}
void strangeFn2(int) {}
}
int main()
{
Strange::X x;
strangeFn(x); // GCC allows calling this function.
strangeFn2(0); // Error: strangeFn2 is not declared in this scope.
return 0;
}
Как компиляторы C++ разрешают область действия символов?