次の教訓的な例は私の問題を示しています:
#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関数を作成する方法はありますか?)