Вызов функции с переменным количеством аргументов - PullRequest
4 голосов
/ 11 августа 2011

Можно ли построить вызов функции (внутри шаблона функции) с переменным количеством аргументов, в зависимости от количества аргументов шаблона?Что-то вроде:

void f(int i) {}
void f(int i1, int i2){}
void f(int i1, int i2, int i3){}
...

template<typename... T>
void caller() {
   f(/* sizeof...(T) number of arguments; of form T_i::value */);
}

1 Ответ

6 голосов
/ 11 августа 2011

Да; пакет параметров шаблона T может расширяться так же, как пакет параметров функции:

template<typename... T>
caller() {
   f(T::value...);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...