What is “Argument-Dependent Lookup” (aka ADL, or “Koenig Lookup”)?

Koenig Lookup, or Argument Dependent Lookup, describes how unqualified names are looked up by the compiler in C++. The C++11 standard § 3.4.2/1 states: When the postfix-expression in a function call (5.2.2) is an unqualified-id, other namespaces not considered during the usual unqualified lookup (3.4.1) may be searched, and in those namespaces, namespace-scope friend function … Read more