У меня есть набор классов, которые имеют следующую структуру:
class U
{
public:
explicit U(int) { ... }
U() {...}
Init(int) {...}
};
Мне нужно иметь возможность составить 1 или несколько из этих классов в класс X. Псевдокод:
template<class TypeSequence>
class X that derives publicly from all the classes in TypeSequence
{
X(int): all bases are initialized with the integer passed
{}
//if the above constructor is impossible, then the following will do as well:
X(int)
{
Call Init on all bases and pass the given int to them.
}
};
Я думаю, что мне нужно много mpl, но я не очень хорош в этом. Выполнимо ли то, что я пытаюсь сделать? Пример кода был бы отличным.
МОЯ ОШИБКА: Забыл упомянуть, что не могу использовать функции C++11. Я ищу решение MPL.
boost::mpl::vector<>
в качестве аргументов шаблона. - person ildjarn   schedule 08.09.2011