Two variadic templates for a single function?

c++, c++11, templates, variadic-functions, variadic-templates

Solution

That's perfectly legal:

#include <tuple>

using namespace std;

template <class... Types, class... Args>
void f(const std::tuple<Types...>& t, Args&&... args)
{
    // Whatever...
}

int main()
{
    std::tuple<int, double, bool> t(42, 3.14, false);
    f(t, "hello", true, 42, 1.0);

    return 0;
}

Problem

In C++11 is it possible to have two variadic templates for a single function ? If not, is there a trick to write something like that : ``` template <class... Types, class... Args> void f(const std::tuple<Types...>& t, Args&&... args) ```

Original source