Этот вопрос заставил меня задуматься о том, когда-либо полезно / необходимо полностью квалифицировать имена классов (включая оператор глобальной области видимости) в определении функции-члена вне класса.
С одной стороны, я никогда не видел, чтобы это было сделано раньше (и синтаксис для правильной работы кажется неясным). С другой стороны, поиск имени в C ++ очень нетривиален, поэтому, возможно, существует угловой случай.
Вопрос:
Был ли когда-нибудь случай, когда введение определения функции-члена вне класса
ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
отличалось бы от
ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }
(без ::
префикса глобальной области видимости )?
Обратите внимание, что определения функций-членов должны быть помещены в пространство имен, включающее класс, так что это недопустимый пример.