How to define an interator to provide array like behaviour in a class?

Ali Çehreli acehreli at yahoo.com
Wed Oct 17 10:07:24 PDT 2012


On 10/17/2012 09:58 AM, Jacob Carlborg wrote:
 > On 2012-10-17 17:45, Jonathan M Davis wrote:
 >
 >> Well, what would you expect? Ranges are consumed when you iterate over
 >> them.
 >> So, if an container is a range, it will be consumed when you iterate
 >> over it.
 >> That's the way that it _has_ to work given how ranges work, and that's
 >> why you
 >> overload opSlice to return a range which is iterated over rather than
 >> making
 >> the container itself a range.
 >
 > How does this work with built-in arrays?

Array is a separate concept than slice; a slice provides access to the 
elements of an array. Arrays are containers that are owned by the 
runtime, slices are ranges over their elements. Only the slices are 
consumed.

Ali



More information about the Digitalmars-d-learn mailing list