C ++ 11: Eu posso ir de múltiplos args para tuple, mas eu posso ir de tuple para múltiplos args? [duplicado]

Duplicata Possível:
Como faço para expandir uma tupla nos argumentos da função de modelo variadico?
“Desempacotando” uma tupla para chamar um ponteiro de função correspondente

Em modelos C ++ 11, existe uma maneira de usar uma tupla como os argumentos individuais de uma função (possivelmente modelo)?

Exemplo:
Vamos dizer que eu tenho essa função:

void foo(int a, int b)  
{  
}

E eu tenho a tuplaauto bar = std::make_tuple(1, 2).

Posso usar isso para ligarfoo(1, 2) de uma maneira templaty?

Não me refiro simplesmentefoo(std::get<0>(bar), std::get<1>(bar)) desde que eu quero fazer isso em um modelo que não sabe o número de args.

Exemplo mais completo:

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  
}

Devo observar que prefiro não criar um modelo que funcione para um arg, outro que funcione para dois, etc…

questionAnswers(2)

yourAnswerToTheQuestion