[Edit2: I think I misunderstood the question, I forgot that subzero wanted to return std::future and just thought that the only problem was the syntax of the parameter package. Hopefully using a helper function like in my first edit should work at least]
You can simply do:
template <typename... T> void call_wrapper(T&&... t) { g(f(std::forward<T>(t)).get()...); }
If I do not understand what you want to do. C>
Edit1: if you want to do something else, you can split the function into two calls, for example:
template<typename... T> void helper(T&&... t) {
source share