Давайте рассмотрим пример в предоставленной ссылке:
template <class T>
void test(T t)
{
int a[std::tuple_size<T>::value]; // can be used at compile time
std::cout << std::tuple_size<T>::value << '\n'; // or at run time
}
int main()
{
test(std::make_tuple(1, 2, 3.14));
}
Из этого примера (а также из самой ссылки, см., Например, второе объявление) можно сделать вывод, что аргумент шаблона дляstd::tuple_size
- это тип кортеж .
Как и (в вашем случае)
std::cout << std::tuple_size<std::tuple<T...>>::value << '\n';
// ^^^^^^^^^^^^^^^^
// Note: The tuple type is used here