別のシーケンスの要素でそれぞれ 1 つずつ初期化する必要がある要素の Boost.Fusion シーケンスがあります。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() ) );
このアイデアでは、 for のmagic_functor
結果タイプがあり、その で構築を実行します。ただし、キャスト先の正しい型を知る必要があるため、ロジックが重複します。Bi
Ai
operator()
magic_functor
初期化を融合化するより良い方法はありますか?