Francesco Cattoglio:

- iota() currently returns a Random Access range, and I'm sure nobody would agree to downgrade the result to a ForwardRange or an InputRange, because that would break an unknown amount of code.
...
Everything else ends up being the same as before: popBack() can be optimized if {--c;} is valid code, the opIndex, opSlice, back and length methods will take O(n) time, no way around this sadly.

If the new iota accepts new types, then no existing code is using iota for such cases. So you are not breaking code is you offer a more restricted range for such types, avoiding O(n) behavior for them.

Bye,
bearophile

Reply via email to