Главная » C++ » Как применить функцию к каждому компоненту списка переменных и вернуть список переменных?
Как применить функцию к каждому компоненту списка переменных и вернуть список переменных?
Следующий дидактический пример иллюстрирует мою проблему:
#include <iostream>
#include <cmath>
template<class Function, class... Args>
double apply(Function f, Args... args)
{
return f(args...);
}
template<class Function, class... Args>
double applybis(Function f, Args... args)
{
return f(std::sin(args...));// <- How to apply a function to
// each variadic parameter and
// return a modified variadic list ?
}
int main(int argc, char* argv[])
{
std::cout<<apply(static_cast<double(*)(double)>(std::sin), 3.)<<std::endl;
return 0;
}
Как «преобразовать» список переменных, применяя функцию к каждому компоненту и возвращая измененный список переменных?
(Есть ли способ написать функцию applybis без изменения ее текущей подписи?)