Udostępnij za pośrednictwem


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);   
}

Zobacz też

Inne zasoby

Visual C++.NET 2003 rozszerzona zgodność kompilatora