C ++ 11: Ich kann von mehreren Argumenten zu Tupeln wechseln, aber kann ich von Tupeln zu mehreren Argumenten wechseln? [Duplikat]

Mögliche Duplikate:
Wie erweitere ich ein Tupel in die Argumente der variadischen Vorlagenfunktion?
Tupel „auspacken“, um einen passenden Funktionszeiger aufzurufen

Gibt es in C ++ 11-Vorlagen eine Möglichkeit, ein Tupel als die einzelnen Argumente einer (möglicherweise Vorlagen-) Funktion zu verwenden?

Beispiel:
Nehmen wir an, ich habe diese Funktion:

void foo(int a, int b)  
{  
}

Und ich habe das Tupelauto bar = std::make_tuple(1, 2).

Kann ich das benutzen, um anzurufenfoo(1, 2) auf templaty Weise?

Ich meine nicht einfachfoo(std::get<0>(bar), std::get<1>(bar)) da ich dies in einer Vorlage tun möchte, die die Anzahl der Argumente nicht kennt.

Vollständigeres Beispiel:

template<typename Func, typename... Args>  
void caller(Func func, Args... args)  
{  
    auto argtuple = std::make_tuple(args...);  
    do_stuff_with_tuple(argtuple);  
    func(insert_magic_here(argtuple));  // <-- this is the hard part  
}

Ich sollte beachten, dass ich es vorziehen würde, keine Vorlage zu erstellen, die für ein Argument, eine andere für zwei, usw. funktioniert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage