Несколько вхождений типа заполнителя «авто» в типеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Несколько вхождений типа заполнителя «авто» в типе

Сообщение Anonymous »

Позвольте мне использовать последний текущий черновик пункта о вычете типов заполнителей: https://eel.is/c++draft/dcl.type.auto.deduct
Часть 3 читается (выделено жирным шрифтом от меня):

Если спецификатор типа-заполнителя имеет форму type-constraint(opt) auto, выведенный тип T'< /code> замена T определяется с использованием правил вывода аргументов шаблона. Если инициализация представляет собой инициализацию списка копирования, объявление std​::​initializer_list должно предшествовать ([basic.lookup.general]) спецификатору типа-заполнителя. Получите P из T, заменив вхождения type-constraint(opt) auto либо новым изобретенным параметром шаблона типа U, либо, если инициализация copy-list-initialization с помощью std​::​initializer_list. Выведите значение для U, используя правила вывода аргумента шаблона из вызова функции, где P — тип параметра шаблона функции, а соответствующий аргумент — E. Если вывод не удался, декларация имеет неправильную форму. В противном случае T' получается путем замены выведенного U на P.

Может ли кто-нибудь поделиться каким-либо примером с несколькими вхождениями (необязательно с ограничением по типу) auto внутри типа T, который должен быть тот же тип P?
Например, часть 4 со случаем decltype(auto), явно укажите ограничение:

... T должно быть единственным заполнителем...

что, похоже, подтверждает существование расширенных случаев (для auto).

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-a-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»