IT-lexikon › Programmering › ADL

ADL Argument-Dependent Lookup

Programmering In English → Uppdaterad: 2026-07-29

C++-regeln att kompilatorn vid ett okvalificerat funktionsanrop även letar i namnrymderna som hör till argumentens typer. Kallas också Koenig-uppslagning.

Det är den som gör att std::cout << x fungerar utan att man skriver ut vilken operator<< som avses, och den är inte en kuriositet utan bärande konstruktion. Utan den vore operatoröverlagring över namnrymdsgränser obrukbar. Den ligger också bakom mönstret using std::swap; swap(a, b);, som föredrar typens egen variant och faller tillbaka på standardens — den vedertagna metoden för anpassningspunkter i generisk kod. Baksidan är att den kan dra in överlagringar från namnrymder man inte tänkt på, och skapa tvetydigheter som uppstår först när någon inkluderar en till synes orelaterad header. Det är därför C++20:s ranges använder anpassningspunktsobjekt som medvetet blockerar den.

← Tillbaka till lexikonet