История изменений
Исправление utf8nowhere, (текущая версия) :
Я понимаю, что чего-то не понимаю. Почему публично обявленный через using тип можно принимать, но нельзя возвращать?
Потому что potential scope для имён, объявленных в классе, продолжается за определение класса с определёнными ограничениями. Например, для определений методов класса вне класса potential scope начинается за идентификатором («именем») метода, но не перед ним.
The potential scope of a declaration that extends to or past the end of a class definition also extends to the regions defined by its member definitions, even if the members are defined lexically outside the class (this includes static data member definitions, nested class definitions, and member function definitions, including the member function body and any portion of the declarator part of such definitions which follows the declarator-id, including a parameter-declaration-clause and any default arguments).
https://timsong-cpp.github.io/cppwp/n3337/basic.scope#class-1.5
https://timsong-cpp.github.io/cppwp/n4140/basic.scope#class-1.5
https://timsong-cpp.github.io/cppwp/n4659/basic.scope#class-4
Исходная версия utf8nowhere, :
Я понимаю, что чего-то не понимаю. Почему публично обявленный через using тип можно принимать, но нельзя возвращать?
Потому что potential scope для имён, объявленных в классе, продолжается за определение класса с некоторыми ограничениями. Например, для определений методов класса potential scope начинается за идентификатором («именем») метода, но не перед ним.
The potential scope of a declaration that extends to or past the end of a class definition also extends to the regions defined by its member definitions, even if the members are defined lexically outside the class (this includes static data member definitions, nested class definitions, and member function definitions, including the member function body and any portion of the declarator part of such definitions which follows the declarator-id, including a parameter-declaration-clause and any default arguments).
https://timsong-cpp.github.io/cppwp/n3337/basic.scope#class-1.5
https://timsong-cpp.github.io/cppwp/n4140/basic.scope#class-1.5
https://timsong-cpp.github.io/cppwp/n4659/basic.scope#class-4