【发布时间】:2016-09-20 05:37:13
【问题描述】:
我想概括以下模式:
template<class A1, class A2, class A3>
class Foo {
protected:
template<class T>
void foo(const T& t) {...do stuff...}
public:
void bar(const A1& a) { foo(a); }
void bar(const A2& a) { foo(a); }
void bar(const A3& a) { foo(a); }
};
上述方法不能随着参数数量的增加而扩展。所以,我想做:
template<class As...>
class Foo {
protected:
template<class T>
void foo(const t& a) {...do stuff...}
public:
for each type A in As declare:
void bar(const A& a) { foo(a); }
};
有办法吗?
【问题讨论】:
-
可变参数序列,是否可以多次包含相同的类型,还是该序列是唯一类型?
标签: c++ templates c++11 variadic-templates