Por que as qualificações de escopo redundante são suportadas pelo compilador e isso é legal?
Eu testei em dois compiladores, e fiquei surpreso ao ver ambos suportar o seguintedefinição sem reclamação:
class A {
A();
};
A::A::A() {}
^^^
Observe que isso também é bem-sucedido para métodos, embora seja sinalizado quando a declaração é superqualificada.
Questões:
Este é um programa C ++ válido?Se sim, a que propósito serve - ou é apenas um subproduto?Detalhe atualizado:
Caso a pergunta original não seja clara ou curta: estou curioso para saber por que são permitidas qualificações redundantes nodefinição (ênfase também adicionada acima).
Clang um GCC 4.2 + LLVM da Apple foram os compiladores