2016-06-02 14:51 GMT+02:00 Steven Schveighoffer via Digitalmars-d < digitalmars-d@puremagic.com>:
> I have always treated ranges with this expectation: > > I think the case is pretty clear here, and I'm in agreement with you. I just want to add a note on the following point: 2016-06-02 14:51 GMT+02:00 Steven Schveighoffer via Digitalmars-d < digitalmars-d@puremagic.com>: > The counter-argument seems to be that if you cache the front element, then > then making a copy of the range via take can repeat the cached element[4]. > I find this argument severely lacking -- non-forward ranges are not meant > to be copied and expected to operate properly, it's why we require calling > save. > The compiler is blatantly guilty of doing so: https://issues.dlang.org/show_bug.cgi?id=15413