Argumentbezogene Namenssuche (Koenig) in Funktionen
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);
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für