У меня есть две функции: f
и g
. f
рассчитывает возвращаемое значение асинхронно и возвращает будущее. Теперь, основываясь на нескольких возвращаемых значениях f
, я хочу позвонить g
, но я хочу убедиться, что вычисления значений f
происходят параллельно.Распаковка пакетов параметров в C++
Рассмотрим следующий код:
template <typename T>
std::future<T> f(T& t);
template <typename... T>
void g(T&&... t)
template <typename... T>
void call_wrapper(T&&... t) {
auto f1 = f(t1); // How do I set the values of f1... fn
auto f2 = f(t2);
...
g(f1.get(), f2.get()....); // How do I call g
}
Как я могу распаковать типы из VARIADIC шаблона T
функции call_wrapper
?
Посмотрите на 'std :: tuple'. Он идеально подходит для хранения объектов вариационного пакета. – Quentin