Formatted read consumes input
Steven Schveighoffer
schveiguy at yahoo.com
Fri Sep 7 11:13:17 PDT 2012
On Fri, 07 Sep 2012 11:04:36 -0400, Jonathan M Davis <jmdavisProg at gmx.com>
wrote:
> On Friday, September 07, 2012 10:52:07 Steven Schveighoffer wrote:
>> We have three situations:
>>
>> 1. input range is a ref type already (i.e. a class or a pImpl struct),
>> no
>> need to pass this by ref, just wastes cycles doing double dereference.
>> 2. input range is a value type, and you want to preserve the original.
>> 3. input range is a value type, and you want to update the original.
>>
>> I'd like to see the library automatically make the right decision for 1,
>> and give you some mechanism to choose between 2 and 3. To preserve
>> existing code, 3 should be the default.
>
> Does it _ever_ make sense for a range to be an input range and not a
> forward
> range and _not_ have it be a reference type?
No it doesn't. That is case 1.
However, it's quite easy to forget to define "save" when your range really
is a forward range. I don't really know a good way to fix this. To
assume that an input-and-not-forward range has reference semantics is
prone to inappropriate code compiling just fine.
Clearly we can say classes are easily defined as not needing ref.
-Steve
More information about the Digitalmars-d
mailing list