Pesquisa de nome dependente do argumento (Koenig) em funções
O compilador pode usar a pesquisa por nome dependente de argumento para localizar a definição de uma chamada de função não qualificada. A pesquisa por nome dependente de argumento 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 uma chamada de função postfix não qualificada, o compilador pesquisa pela definição de função na hierarquia associada a cada tipo de argumento.
Exemplo
No exemplo, o compilador nota que a função f()
pega um argumento x
. O argumento x
é do tipo A::X
, que é definido no namespace A
. O compilador pesquisa o namespace A
e encontra uma definição para a função f()
, que usa 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);
}
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários