Questa domanda mi ha fatto domandare se sia mai utile / necessario qualificare completamente i nomi di classe (incluso l'operatore di ambito globale) in una definizione di funzione membro fuori classe.
Da un lato, non l'ho mai visto prima (e la sintassi per farlo correttamente sembra oscura). Dall'altro, la ricerca del nome C ++ è molto semplice, quindi forse esiste un caso angolare.
Domanda:
Esiste mai un caso in cui l'introduzione di una definizione di funzione membro fuori classe
ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
differirebbe da
ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }
(nessun ::
prefisso di ambito globale )?
Si noti che le definizioni delle funzioni membro devono essere inserite in uno spazio dei nomi che racchiude la classe, quindi questo non è un esempio valido.