У меня есть вектор boost mpl с типами (очевидно). После объявления этого вектора я хочу перебрать его и добавить каждый тип, заключенный в другой шаблон, к этому вектору. Я много чего пробовал, но хоть убей не могу понять этого. Я не уверен, можно ли вообще изменить вектор mpl при итерации по нему, например, работает ли аннулирование итератора так же, как в STL? По сути, у меня есть это:
typedef boost::mpl::vector<int, float, double> MyTypes;
template<typename T> struct wrapper { T _value; };
, а затем я хочу добавить wrapper<int>
, wrapper<float>
и wrapper<double>
в MyTypes. Конечно, в моем реальном коде у меня гораздо больше типов, которые я не хочу дублировать.
Так что я думаю, что это должно быть возможно, например, путем объединения boost :: mpl :: fold с boost :: mpl :: back_inserter каким-то образом, но я не могу понять ... Спасибо.