2017-01-11 3 views

ответ

8

Согласно [basic.lookup.qual]/3,

В декларации, в которой описателе-идентификатор является квалифицирован-идентификатор, имена используются до квалифицированного идентификатора объявленные , рассматриваются в области определения пространства имен; имена, следующие за квалифицированным идентификатором, рассматриваются в области класса участника или пространства имен.

Тип возврата приходит до квалифицирован-идентификатор объявляется (то есть, A::Method), тогда как тип параметра приходит после него, так что имя типа параметра, автоматически ищется в рамках A, в то время как имя типа возврата - нет. Мы можем избежать дополнительной квалификации с использованием возвращаемого возвращаемого типа.

auto A::Method(B argument) -> B; 
+3

Я единственный парень, которому приходилось читать стандартную цитату 10 раз медленно, чтобы получить его? – user

+0

@user Я понимаю, что читать его не так просто, если вы не знакомы с лексикой. Вот почему я также объяснил ниже. – Brian

+3

Да, вы определенно сохранили мне еще 20 – user

Смежные вопросы