Ну, я знаю, почему, потому что нет конверсии, но почему нет конверсии? Почему переадресация итераторов может быть повернута на обратные итераторы, но не наоборот? И что еще более важно, что я могу сделать, если я хочу это сделать? Есть ли какой-либо адаптер, который позволяет вам итератировать назад с помощью передового итератора?
std::vector<int> buffer(10);
std::vector<int>::iterator forward = buffer.begin();
std::vector<int>::reverse_iterator backward = buffer.rbegin();
++forward;
++backward;
std::vector<int>::iterator forwardFromBackward = std::vector<int>::iterator(backward); // error! Can't convert from reverse_iterator to iterator!
std::vector<int>::reverse_iterator backwardFromForward = std::vector<int>::reverse_iterator(forward); // this is fine