Я не понимаю причину this defect report 1207, более конкретно со ссылкой на следующее предложение (выделено мною):Дефект отчет 1207
Поскольку преобразование имени элемента в выражение члена класса доступа (9.3.1 [class.mfct.non-static], абзац 3) возникает только внутри тела нестатической функции-члена, Тип v в trailing-return-type не является константой, но является const в обратном выражении , что приводит к несоответствию типа между обратным выражением и возвратом t ype функции.
Редактировать
То есть, я не понимаю, почему тип V в типе возвращаемого трейлинг выводится как неконстантная.
'С другой стороны, v.begin() в обратном-возвратном типе« вызывает »неконстантную перегрузку, которая возвращает итератор.« Хорошо, но почему выбрана непостоянная перегрузка в этом случае? –
Потому что аргумент объекта 'v' (видимый из возвращаемого типа возврата) не является константным. Поэтому разрешение перегрузки обнаруживает, что несогласованная перегрузка будет лучше соответствовать. Но, видимо из типа traling-return-type, 'v' ** должен ** быть const-квалифицированным, поскольку функция-член. – Columbo
Что вы говорите, так это то, что 'const' в объявлении функции-члена не относится к типу возвращаемого возврата. Не могли бы вы предоставить ссылку для этого? –