Задать вопрос
PavelK
@PavelK

Переменное число параметров функции (variadic template), как сделать рекурсию?

Приветствую!
Хочу сделать функцию с переменным количеством аргументов, что бы вызывать так:
functionName(param1, param2, paramN);
Все параметры одного типа, но общее их количество неизвестно.
Пишу шаблон:
template<typename... Args>
void functionName(double arg1,  Args ... args) {
   ....
   return functionName(args...); 
}
 void functionName() {}

По моей логике количество параметров в args... с каждым разом должно уменьшаться, т.к. объявлен первый параметр явно, но этого не происходит и вызов функции зацикливается навсегда с одним и тем же количеством параметров при вызове (при первом вызове было передано 3, в дальнейшем так 3 и остаётся). Подскажите, как правильно реализовать?

UPDT: Ошибка была моя, всё работает: cpp.sh/6mamm (P.S. volatile лишняя будет )
  • Вопрос задан
  • 521 просмотр
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 2
xpert13
@xpert13
Full Stack Developer
Вместо переменного количества аргументов можно использовать массив или какой-то контейнер, в который и записывать все значения этих аргументов.
Ответ написан
maaGames
@maaGames
Погроммирую программы
Судя по коду, аргументами могут быть только double, так что шаблоны вообще не нужны, хватит классической функции с переменным числом аргументов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы