У меня есть последовательность Boost.Fusion элементов, которые необходимо инициализировать каждый с элементами другой последовательности. Когда я не хотел бы использовать Fusion, это будет выглядеть так:Инициализация элементов последовательности Boost.Fusion из другой последовательности
class A {
A1 a;
A2 b;
A3 c;
};
class B {
B1 a;
B2 b;
B3 c;
B(const A& o) : a(o.a), b(o.b), c(o.c) {}
};
Моя единственная идея реализовать это с помощью векторов Fusion нечто вроде
BVector b(transform(AVector(), magic_functor()));
В этой идее, magic_functor
будет иметь тип результата Bi
для Ai
и выполнить строительство в своем operator()
. Однако magic_functor
должен был бы знать правильный тип, который должен выполняться, что приведет к дублированию логики.
Есть ли лучший способ слияния инициализации?
Спасибо большое, отлично работал. – thiton