“分配”可变参数模板

时间:2013-04-06 04:30:18

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

我有一个可变参数模板类。 它的构造函数应该接受在每个参数上模板化的特定类的实例,即

class Foo<A>
{
public:
    Foo(Bar<A>);
};

class Foo<A, B>
{
public:
    Foo(Bar<A>, Bar<B>);
};

class Foo<A, B, C>
{
public:
    Foo(Bar<A>, Bar<B>, Bar<C>);
};

我该如何编程?

1 个答案:

答案 0 :(得分:2)

template<typename... T>
struct Foo {
    Foo(Bar<T>... bar);
};

在构造函数声明中,Bar<T>作为一个整体是扩展的模式,例如对于Foo<int, long, double>,声明了Bar<int>, Bar<long>, Bar<double>的构造函数。