The normal way to convert from reverse to forward iterator is
std::prev(r_it.base())
Is this valid when r_it is the same as rend()?
If not, how to safely convert any reverse iterator to forward iterator, where result of rend() converts to result of end()