さらに私の質問C++ Tuple of Boost.Range - get Tuple of element types?
私は次のものを持っています:
TupleOfRanges ranges;
TupleOfElements elements;
std::vector<int> offsets;
すべてのコンテナー (メタとランタイムの両方) は sizeN
です。次のことを行うコードを書きたいと思います。
boost::fusion::at_c<0>(elements)
= *(boost::begin(boost::fusion::at_c<0>(ranges)) + offset[0]);
boost::fusion::at_c<1>(elements)
= *(boost::begin(boost::fusion::at_c<1>(ranges)) + offset[1]);
// ...
boost::fusion::at_c<N>(elements)
= *(boost::begin(boost::fusion::at_c<N>(ranges)) + offset[N]);
Fusion のtransform
操作を使用してこれを記述しようとしましたが、問題は、ファンクターが操作対象の要素のインデックスを認識していないように思われます。
私は次のようなことを考えました:
elements
= boost::fusion::transform(boost::fusion::zip(ranges, indices), getValue);
indices
どういうわけかFusionシーケンスを含むことができればうまくいくかもしれませんint 0...N
それで、誰かが昇順を作るのを手伝ってくれますか、それとも私の目標を達成するためのより良い方法を見つけることができますか? どうもありがとう。