Pesquisa de nome (Koenig) dependente de argumento em funções
O compilador pode usar a pesquisa de nome dependente de argumento para localizar a definição de uma chamada de função não qualificados.Pesquisa de nome de argumento dependentes também é chamada de pesquisa de Koenig.O tipo de cada argumento em uma chamada de função é definido dentro de uma hierarquia de namespaces, classes, estruturas, uniões ou modelos.Quando você especifica um não qualificado posfixada chamada de função, o compilador procura a definição da função na hierarquia associada a cada tipo de argumento.
Exemplo
O exemplo a seguir funciona em Visual C++.NET 2003 e posterior e se comporta como especificado no padrão C++.No exemplo, o compilador notas que funcionam f() usa um argumento x.Argumento x é do tipo A::X, que é definido no namespace A.O compilador pesquisa o namespace A e localiza uma definição para a função f() que leva um argumento do tipo A::X.
// argument_dependent_name_koenig_lookup_on_functions.cpp
namespace A
{
struct X
{
};
void f(const X&)
{
}
}
int main()
{
// The compiler finds A::f() in namespace A, which is where
// the type of argument x is defined. The type of x is A::X.
A::X x;
f(x);
}