В дополнение к моему вопросу C ++ Tuple of Boost.Range - получить Tuple типов элементов?
У меня есть следующее:
TupleOfRanges ranges;
TupleOfElements elements;
std::vector<int> offsets;
Все контейнеры (обаmeta и runtime) имеют размер N
.Я хотел бы написать код, который выполняет следующее:
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);
могло бы работать, если бы я мог как-то создать последовательность Fusion indices
, содержащую int 0...N
Так может кто-топомочь мне сделать восходящую последовательность или найти лучший способ достичь своей цели?Большое спасибо.