单个函数的两个可变参数模板?

时间:2013-02-23 17:41:23

标签: c++ templates c++11 variadic-templates variadic-functions

在C ++ 11中,是否可以为单个函数提供两个可变参数模板?

如果没有,是否有诀窍写这样的东西:

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

1 个答案:

答案 0 :(得分:14)

这完全合法:

#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;
}