Введение в пакеты параметров в C++
Пакет параметров - это список типов или значений в шаблоне, длина которого не зафиксирована заранее.
В списке параметров шаблона многоточие
связывает сразу несколько аргументов:
typename... Ts для типов и
Ts... xs для значений.
Оператор sizeof... возвращает
число элементов в пакете.
Объявим шаблон функции с пакетом типов
и значений и выведем размер пакета
типов из main:
#include <iostream>
template<typename... Ts>
void show(Ts... xs) {
std::cout << sizeof...(Ts) << "\n";
}
int main() {
show(1, 2, 3);
return 0;
}
Число в выводе совпадает с количеством типов, которые компилятор вывел из переданных значений.