【发布时间】:2014-05-04 23:48:02
【问题描述】:
如何遍历可变参数模板类的所有基类并为每个基类调用一个函数。
这是一个最小的例子:
struct A { void foo() { std::cout << "A" << std::endl; } };
struct B { void foo() { std::cout << "B" << std::endl; } };
struct C { void foo() { std::cout << "C" << std::endl; } };
template<typename... U>
struct X : public U...
{
void foo() {
static_cast<U*>(this)->foo()...; // ??? should call `foo` for all `U`
}
};
int main() {
X<A,B,C> x;
x.foo();
}
【问题讨论】:
标签: c++ templates c++11 variadic-templates