Mam dwie funkcje: f
i g
. f
oblicza zwracaną wartość asynchronicznie i zwraca przyszłość. Teraz, na podstawie kilku wartości zwracanych f
, chcę wywołać g
, ale chcę się upewnić, że obliczenia wartości f
zdarzają się równolegle.Rozpakowywanie pakietu parametrów w języku C++
Rozważmy następujący kod:
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
}
Jak mogę rozpakować typy od zmiennej liczbie argumentów szablonu T
funkcji call_wrapper
?
Wystarczy popatrzeć na 'std :: tuple'. Idealnie nadaje się do przechowywania obiektów z paczkami variadic. – Quentin