Как вложить и объединить кучу функций?
Вроде у меня куча функций,f, g, h...
. Как легко совместить их вnew_func(x) = f(g(h(x)))
? Для удобства можно считать, что последняя функция не имеет параметров, а остальные функции можно назвать вложенными.
Может ли пакет параметров шаблона достичь этого?
обновлять:
На самом деле, мне нужен способ, который может дать мне комбинацию функций, например
some_nest_method(f, g, h)(x) == f(g(h(x)))
1 ответ
вы можете объединить функцию рекурсивно
что-то вроде этого
template <typename F>
F combine(F f){return f;}
template <typename F, typename...Fs>
auto combine(F f, Fs ...fs){
auto rest = combine(fs...);
return [=](auto arg){
return f(rest(arg));
};
}