Пакет параметров шаблонаПакет параметров шаблона (англ. template parameter pack) в языке программирования C++ — параметр шаблонной функции или класса, состоящий из произвольного количества разнородных элементов. Представляет собой краткую запись гетерогенного набора аргументов вариативного шаблона, определяемую с помощью многоточия Эта языковая возможность была введена в синтаксис начиная со стандарта C++11[3]. СинтаксисСинтаксис объявления вариативного шаблона template<typename... Values>
class tuple;
В качестве элементов пакета параметров шаблона могут выступать типы данных (типовые параметры), параметры, не являющиеся типами (нетиповые параметры) и шаблонные параметры шаблонов[4]. СемантикаКогда в пакете параметров определяются его элементы, он разворачивается в последовательность из нулевого или большего числа аргументов[5]. Поведение пакета параметров и его значение для компилятора эквивалентно обычным параметрам, однако он рассматривается как совокупность любого количества своих элементов. Пакеты параметров, которые не являются обобщёнными типами, могут представлять композицию любого числа аргументов соответствующего им типа. В первичных классах шаблонов, шаблонах псевдонимов и шаблонах переменных допускается иметь только один пакет параметров шаблона. Если он присутствует, то его позиция в списке аргументов обязательно должна быть последней. В шаблонах функций ограничения не такие строгие: допускается использование множественных пакетов, разрешено их произвольное расположение, лишь бы каждый аргумент шаблона после пакета мог быть выведен или имел значение по умолчанию[1]. Для определения количества элементов в списке пакета параметров шаблона предназначен оператор Источники
Примечания
|
Portal di Ensiklopedia Dunia