我有一个可变参数模板类。 它的构造函数应该接受在每个参数上模板化的特定类的实例,即
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>);
};
我该如何编程?
答案 0 :(得分:2)
template<typename... T>
struct Foo {
Foo(Bar<T>... bar);
};
在构造函数声明中,Bar<T>
作为一个整体是扩展的模式,例如对于Foo<int, long, double>
,声明了Bar<int>, Bar<long>, Bar<double>
的构造函数。