Wyszukiwanie nazw (Koenig) zależna od argumentu funkcji
Kompilator umożliwiają wyszukiwanie nazw zależnych od argumentu znaleźć definicji wywołanie funkcji niekwalifikowanych.Wyszukiwanie nazw zależnych od argumentu jest również nazywany zgodny.Typ każdego argumentu w wywołaniu funkcji jest zdefiniowany w ramach hierarchii obszarów nazw, klasy, struktury, związki lub szablony.Podczas określania niekwalifikowanych przyrostkowe wywołanie funkcji kompilator szuka definicji funkcji w hierarchii skojarzonych z każdym typem argumentu.
Przykład
Poniższy przykład działa w programie Visual C++.NET 2003 i nowszych i zachowuje się jak określono w normie C++.W próbce, kompilator zauważa, że funkcja f() przyjmuje argument x.Argument x jest typu A::X, który jest zdefiniowany w obszarze nazw A.Kompilator wyszukiwania nazw A i znajdzie definicję dla funkcji f() , które przekieruje argumentu typu 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);
}