Por que o GCC permite chamar essa função sem usar primeiro o namespace? [duplicado
Possible Duplicate:
or que o escopo do parâmetro C ++ afeta a pesquisa de funções em um espaço para nom
Hoje eu experimentei esse comportamento estranho. Eu posso chamar strangeFn semusing namespace Strange
primeiro, mas não permite chamar estranhoFn2 Por quê?
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;
}
Como os compiladores C ++ resolvem o escopo dos símbolo