argument-dependent-lookup

¿Qué es la " Búsqueda Dependiente del Argumento "(también conocida como ADL, o"Búsqueda Koenig")?

¿Cuáles son algunas buenas explicaciones sobre qué es la búsqueda dependiente del argumento? Muchas personas también lo llam ... enig Lookup también. Preferiblemente me gustaría saber: ¿Por qué es algo bueno? ¿Por qué es algo malo? ¿Cómo funciona?

¿Los contenedores personalizados deben tener funciones de inicio/fin gratuitas?

Cuando se crea una clase contenedor personalizada que juega con las reglas habituales (es decir, funciona con algoritmos STL, ... clases para admitir llamadas de inicio/fin no calificadas en ausencia de usar std de espacio de nombres; o usar std::begin;?

¿Cuáles son las trampas de ADL?

Hace algún tiempo leí un artículo que explicaba varias trampas de la búsqueda dependiente de argumentos, pero ya no puedo enc ... cceso a cosas a las que no deberías tener acceso o algo así. Así que pensé en preguntar aquí: ¿cuáles son las trampas de ADL?

¿Está bien definir una función swap() totalmente general?

El siguiente fragmento: #include <memory> #include <utility> namespace foo { template <typename T> ... to con std::swap? Si es así, ¿hay alguna manera de definir foo::swap() para que no sea arrastrado por la búsqueda de Koenig?