В С++ есть возможность определить функции с переменным количеством аргументов одного типа. Для этого используется механизм вариативных шаблонов (variadic templates).
Для начала, необходимо объявить шаблонную функцию с использованием многоточия в списке аргументов. Например:
template<typename... Args> void printArgs(Args... args) { // тело функции }
В данном случае мы объявляем шаблонную функцию printArgs
, которая будет принимать переменное количество аргументов любого типа и называемых Args
.
Затем, мы можем использовать оператор разворачивания параметров (parameter pack expansion) для обработки каждого аргумента. Если нам нужно вывести на экран каждый аргумент, мы можем сделать следующее:
template<typename... Args> void printArgs(Args... args) { // оператор разворачивания параметров для вывода каждого аргумента ((std::cout << args << " "), ...); }
В данном примере мы используем оператор <<
для вывода каждого аргумента на экран. Оператор разворачивания параметров (args, ...)
, который использует оператор запятой, позволяет нам применить этот оператор для каждого аргумента.
Использование этой функции будет выглядеть следующим образом:
printArgs(1, 2, 3); // выведет: 1 2 3 printArgs("Hello", "World"); // выведет: Hello World
Таким образом, мы можем передавать произвольное количество аргументов одного типа в функцию, используя вариативные шаблоны в С++. Это дает большую гибкость и удобство при работе с функциями, которые должны обрабатывать переменное количество аргументов.