如何使用可变参数模板包装可变数量的函数参数?

时间:2015-08-27 05:23:26

标签: c++ templates variadic-functions variadic

我想获取可变数量的函数参数,并在函数本身中使用模板包装类包装每个函数参数,并将这些包装类作为参数传递给另一个函数。

假如我有一个简单包装变量的模板类。

template<class T>
class Wrapper
{
public:
    Wrapper(T t) : t_(t)
.
.
    {}
private:
    T t_;
}

我有一个函数 f 调用函数 g ,将 f 的每个参数的Wrapper类传递给 g < / I>

template <typename T1, typename T2, typename T3>
void f(T1 a, T2 b, T3 c)
{
    g(Wrapper<T1>(a), Wrapper<T2>(b), Wrapper<T3>(c));
}

函数 g 在这里并不重要,但可以是例如一系列重载函数,每个函数都有不同数量和类型的 Wrapper 类作为其参数。

有没有办法使用可变参数模板调用带有可变数量参数的模板方法 f ,传入相同数量的参数,而是将它们的包装类传入函数 g < / I>

任何帮助非常感谢, 贝

0 个答案:

没有答案