C ++ 11: Mogę przejść od wielu argumentów do krotek, ale czy mogę przejść od krotki do wielu argumentów? [duplikować]

Możliwy duplikat:
Jak rozwinąć krotkę na argumenty funkcji szablonu zmiennego?
„Rozpakowywanie” krotki, aby wywołać pasujący wskaźnik funkcji

Czy w szablonach C ++ 11 istnieje sposób użycia krotki jako pojedynczych argumentów funkcji (ewentualnie szablonu)?

Przykład:
Powiedzmy, że mam tę funkcję:

void foo(int a, int b)  
{  
}

I mam krotkęauto bar = std::make_tuple(1, 2).

Czy mogę go użyć, aby zadzwonićfoo(1, 2) w sposób templaty?

Nie mam na myśli po prostufoo(std::get<0>(bar), std::get<1>(bar)) ponieważ chcę to zrobić w szablonie, który nie zna liczby argumentów.

Bardziej kompletny przykład:

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  
}

Powinienem zauważyć, że wolę nie tworzyć jednego szablonu, który działa dla jednego arg, innego, który działa dla dwóch itd.…

questionAnswers(2)

yourAnswerToTheQuestion