On Wednesday, October 17, 2012 11:17:08 Andrei Alexandrescu wrote: > I think integration of pure streams within ranges is important and > beneficial.
The problem isn't that it's a stream. The problem is that it reuses the buffer that it returns, which is great for efficiency but horrible for algorithms which actually try and use it as a range. Having to worry about front being invalidated after a call to popFront would be a big problem - especially when that's not at all normal behavior. And in many cases, you _can't_ code algorithms in a way that supports that (e.g. if it needs to compare the result of two subsequent calls to front). Having to worry about such ranges is just going to complicate things even more. We already have enough issues with special cases as it is - like save not being called because reference type ranges are so rare, and least that's actually part of the range API, whereas the idea that front could be invalidated really isn't. - Jonathan M Davis
