Sdílet prostřednictvím


Vyhledávání názvu závislého na argumentu (Koenig) ve funkcích

Kompilátor může použít vyhledávání názvu závislého na argumentu pro vyhledání definice neúplného volání funkce. Pro vyhledávání názvu závislého na argumentu je rovněž používán termín vyhledávání Koenig. Typ každého argumentu ve volání funkce je definován v rámci hierarchie oborů názvů, tříd, struktur, sjednocení nebo šablon. Když zadáte nekvalifikované volání postfix funkce, kompilátor vyhledá definici funkce v hierarchii přidruženou k jednotlivým typům argumentů.

Příklad

V příkladu kompilátor zaznamená, že funkce f() přebírá argument x. Argument x je typu A::X, který je definován v oboru názvů A. Kompilátor vyhledá obor názvů A a najde definici funkce f(), která přebírá argument 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);
}