Ho due funzioni f
e g
. f
calcola il valore restituito in modo asincrono e restituisce un futuro. Ora, in base a diversi valori di ritorno di f
, voglio chiamare g
, ma voglio assicurarmi che i calcoli dei valori di f
avvengano in parallelo.Unpacking Parameter Pack in C++
Si consideri il seguente codice:
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
}
Come posso scompattare i tipi dal modello variadic T
della funzione call_wrapper
?
Dai un'occhiata a 'std :: tuple'. È perfetto per la memorizzazione di oggetti pack variabili. – Quentin