On Wed, 17 Aug 2011 00:05:54 -0400, Jonathan M Davis <jmdavisp...@gmx.com> wrote:

So, the question is, should a range-based function have the same behavior for
all forward ranges regardless of whether they're value types or reference
types? Or should the caller be aware of whether a range is a value type or a reference type and call save if necessary? Or should the caller just always
call save when passing a forward range to a function?


Probably not helpful, since the establishment seems to be set in their opinions, but I'd recommend saying ranges are always structs, and get rid of the save concept, replacing it with an enum solution. The current save regime is a fallacy, because it's not enforced. It's as bad as c++ const.

At the very least, let's wait until someone actually comes up with a valid use case for reference-based forward ranges before changing any code. So far, all I've seen is boilerplate *RangeObject, no real usages.

-Steve

Reply via email to