我使用提升1.58 中的mpl::vector
。我有类型:
typedef mpl::vector <base1, base2, base3> types;
如果我有一个派生类,我如何从这个mpl::vector
中的所有这些类型继承它?
答案 0 :(得分:2)
您可以使用inherit_linearly。
使用示例:
class A
{
public:
void a() {}
};
class B
{
public:
void b() {}
};
class C
{
public:
void c() {}
};
typedef boost::mpl::vector<A, B, C> types;
class Derived :
public boost::mpl::inherit_linearly<types,
boost::mpl::inherit<boost::mpl::_1, boost::mpl::_2> >::type
{
};
int main()
{
Derived d;
d.a();
d.b();
d.c();
}