Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Compiler kann eine argumentbezogene Namenssuche verwenden, um die Definition eines nicht qualifizierten Funktionsaufrufs zu suchen. Die argumentbezogene Namenssuche wird auch Koenig-Suche genannt. Der Typ jedes Arguments in einem Funktionsaufruf wird innerhalb einer Hierarchie von Namespaces, Klassen, Strukturen, Unions oder Vorlagen definiert. Wenn Sie einen nicht qualifizierten Postfix-Funktionsaufruf angeben, sucht der Compiler nach der Funktionsdefinition in der Hierarchie, die jedem Argumenttyp zugeordnet ist.
Beispiel
Im Beispiel stellt der Compiler fest, dass Funktion f()
ein Argument x
akzeptiert. Argument x
ist vom Typ A::X
, der im Namespace A
definiert ist. Der Compiler durchsucht Namespace A
und findet eine Definition für die f()
-Funktion, die ein Argument des Typs A::X
akzeptiert.
// 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);
}