¿Por qué el compilador soporta las calificaciones de alcance redundante, y es legal?
Probé en dos compiladores, y me sorprendió ver que ambos apoyan lo siguientedefinición sin queja
class A {
A();
};
A::A::A() {}
^^^
Tenga en cuenta que esto también es exitoso para los métodos, aunque se marca cuando la declaración está sobre-calificada.
Preguntas:
¿Es este un programa válido de C ++?Si es así, ¿para qué sirve o es simplemente un subproducto?Detalle actualizado:
En caso de que la pregunta original no fuera clara o demasiado breve: tengo curiosidad por saber por qué se permiten calificaciones redundantes en eldefinición (énfasis también añadido arriba).
Clang an Apple GCC 4.2 + LLVM fueron los compiladores