Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CPlusPlusNotesForProfessionals.pdf
Скачиваний:
47
Добавлен:
20.05.2023
Размер:
5.11 Mб
Скачать

Chapter 129: Parameter packs

Section 129.1: A template with a parameter pack

template<class ... Types> struct Tuple {};

A parameter pack is a template parameter accepting zero or more template arguments. If a template has at least one parameter pack is a variadic template.

Section 129.2: Expansion of a parameter pack

The pattern parameter_pack ... is expanded into a list of comma-separated substitutions of parameter_pack with

each one of its parameters

template<class T> // Base of recursion void variadic_printer(T last_argument) {

std::cout << last_argument;

}

template<class T, class ...Args>

void variadic_printer(T first_argument, Args... other_arguments) { std::cout << first_argument << "\n"; variadic_printer(other_arguments...); // Parameter pack expansion

}

The code above invoked with variadic_printer(1, 2, 3, "hello"); prints

1

2

3 hello

GoalKicker.com – C++ Notes for Professionals

624