Difference between input range and forward range
    Steven Schveighoffer via Digitalmars-d 
    digitalmars-d at puremagic.com
       
    Tue Nov 10 09:16:40 PST 2015
    
    
  
On 11/10/15 9:28 AM, Shachar Shemesh wrote:
> Please consider the following program:
The problem is that you defined a forward range without implementing all 
the primitives :) That is, you can easily make a copy of the range so it 
iterates from the current spot (the quintessential feature of forward 
ranges). You actually have to do *extra work* to make it a true 
input-but-not-forward-range.
I've never made it a secret that I dislike the 'save' requirement. In my 
experience, the only time you ever implement 'save' is to do the same 
thing as copying the range via =. To the point where people simply don't 
use the .save member, and their code always works, so what is the point? 
It may as well have been an enum isCopyable.
-Steve
    
    
More information about the Digitalmars-d
mailing list