2015-05-29 1 views

ответ

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(); 
}