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

questionAnswers(1)

yourAnswerToTheQuestion