Как вложить и объединить кучу функций?

Вроде у меня куча функций,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));
    };
}

https://godbolt.org/z/EzqjKr4q5

Другие вопросы по тегам