Ich habe zwei Funktionen f
und g
. f
berechnet den Rückgabewert asynchron und gibt eine Zukunft zurück. Nun, basierend auf mehreren Rückgabewerten von f
, möchte ich g
aufrufen, aber ich möchte sicherstellen, dass die Berechnungen der Werte von f
parallel passieren.Auspacken des Parameterpakets in C++
Betrachten Sie den folgenden Code ein:
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
}
Wie kann ich die Typen aus der variadische Vorlage T
der call_wrapper
Funktion entpacken?
Werfen Sie einen Blick auf 'std :: tuple'. Es ist perfekt zum Aufbewahren von variablen Pack-Objekten. – Quentin