Esta pregunta me hizo preguntarme si alguna vez es útil / necesario calificar completamente los nombres de clase (incluido el operador de alcance global) en una definición de función de miembro fuera de clase.
Por un lado, nunca había visto esto antes (y la sintaxis para hacerlo correctamente parece oscura). Por otro lado, la búsqueda de nombres en C ++ no es muy trivial, por lo que tal vez exista un caso de esquina.
Pregunta:
¿Hay algún caso en el que la introducción de una definición de función miembro fuera de clase
ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
difiera de
ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }
(sin ::
prefijo de alcance global )?
Tenga en cuenta que las definiciones de funciones miembro deben colocarse en un espacio de nombres que encierra la clase, por lo que este no es un ejemplo válido.