name-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?

¿Cuál es el nombre completo de una función amiga definido dentro de una clase?

¿Cuál es el nombre completo de una función amiga definido dentro de una clase? Recientemente vi un ejemplo análogo al sigui ... ntrar? Es cierto que esto no se deriva de un problema práctico. Simplemente estoy tratando de obtener una mejor comprensión.

Problema GCC: uso de un miembro de una clase base que depende de un argumento de plantilla

El siguiente código no compila con gcc, pero sí con Visual Studio: template <typename T> class A { public: T foo; ... e tenga que hacer esto. ¿Hay algo en las especificaciones oficiales de C++ que GCC está siguiendo aquí, o es solo un ¿rareza?

En una clase derivada templada, ¿por qué necesito calificar los nombres de miembros de la clase base con "this->" dentro de una función miembro?

Mientras investigo el código fuente de Qt vi que los chicos de trolltech usan explícitamente la palabra clave this para acced ... dPointer definición: template <typename T, typename Cleanup = QScopedPointerDeleter<T> > class QScopedPointer

¿Por qué esta búsqueda de nombre dependiente encuentra un identificador global en lugar del método?

Cuando el compilador intenta resolver i.template hi<T>(); encuentre hi en el espacio de nombres global en lugar del mét ... me gustaría que mi código de implementación sea robusto y no cause conflictos de nombres aleatorios en el código de usuario.

Un comportamiento extraño de usar-declaración

Consulte el siguiente código struct A { using type = int; }; struct B : private A {}; struct C : B { using base_type = A; } ... o para B? ¿Este error de compilación debe considerarse un error, o es un caso extremo de las especificaciones del estándar?

¿Es esto - > obligatorio para acceder a identificadores Base de clases derivadas?

Este código compila con MSVC 2015, pero no compila con Clang 5.0.0 (trunk 304874): template <typename T> struct Base ... ún el estándar C++? ¿Debe utilizarse this-> en el código de plantilla para acceder a un identificador de una clase base?

Búsqueda de nombres de dos fases para plantillas de C++ - ¿Por qué?

¿Por qué el estándar C++ define la búsqueda de plantillas en dos fases? ¿No podrían las búsquedas de declaraciones y definiciones no dependientes ser diferidas también a la etapa de instanciación?