Не фиксируемое количество аргументов 1 типа в c++?

В С++ есть возможность определить функции с переменным количеством аргументов одного типа. Для этого используется механизм вариативных шаблонов (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

Таким образом, мы можем передавать произвольное количество аргументов одного типа в функцию, используя вариативные шаблоны в С++. Это дает большую гибкость и удобство при работе с функциями, которые должны обрабатывать переменное количество аргументов.