Работа вариативных шаблонов с++
При написании вариативных шаблонов функций:
template <typename... T>
void foo(T... args)
{
foo(args...);
}
Можно увидеть вот такую запись:
args...
Насколько я понимаю,это развертка текущего пакета параметров, и передача его в foo. Но есть вопрос, что из себя представляет пакет параметров? Это какой-то особый тип данных или что? Как функция "видит" эту запись?