IT-Lexikon › Programmierung › ADL

ADL Argument-Dependent Lookup

Programmierung Svenska → Aktualisiert: 2026-09-14

Die C++-Regel, dass der Compiler bei einem unqualifizierten Funktionsaufruf zusätzlich die Namensräume durchsucht, die zu den Argumenttypen gehören. Auch Koenig-Lookup genannt.

Sie sorgt dafür, dass std::cout << x funktioniert, ohne dass man ausschreibt, welcher operator<< gemeint ist — keine Kuriosität, sondern tragendes Element der Sprache. Ohne sie wäre Operatorüberladung über Namensraumgrenzen hinweg unbrauchbar. Sie steckt auch hinter dem Idiom using std::swap; swap(a, b);, das die typspezifische Variante bevorzugt und auf die Standardversion zurückfällt — die etablierte Methode für Anpassungspunkte in generischem Code. Der Nachteil: Sie kann Überladungen aus Namensräumen hereinziehen, an die niemand gedacht hat, und Mehrdeutigkeiten erzeugen, die erst auftauchen, wenn jemand einen scheinbar unbeteiligten Header einbindet. Deshalb blockieren die Customization Point Objects von C++20s Ranges sie bewusst.

← Zurück zum Lexikon