
19 Feb
2014
19 Feb
'14
11:10 a.m.
Why in the world does a stride iterator need to be random-access? Here is a strided range adaptor that works with input iterators:
https://github.com/ericniebler/range-v3/blob/ master/include/range/v3/view/stride.hpp
It's not even hard.
I guess it may have been because it was the easiest. I see you have special handling of bidirectional iterators. Anyway, nice to see your improvements. :-)
I think this implies that the current implementation in Boost.Range doesn't optimise for bidirectional and random-access which is wrong. My implementation requires at least a single-pass traversal but handles bidirectional and random-access fine.
-Thorsten
Neil Groves