Essa pergunta me fez pensar se é útil / necessário qualificar totalmente os nomes de classe (incluindo o operador de escopo global) em uma definição de função de membro fora da classe.
Por um lado, nunca vi isso antes (e a sintaxe para fazê-lo corretamente parece obscura). Por outro lado, a pesquisa de nome C ++ é muito trivial, portanto, talvez exista uma caixa de canto.
Questão:
Existe algum caso em que a introdução de uma definição de função de membro fora da classe
ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
seja diferente
ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }
(sem ::
prefixo de escopo global )?
Observe que as definições de função de membro devem ser colocadas em um espaço para nome que encerra a classe, portanto este não é um exemplo válido.