range properties that work in foreach

Lars T. Kyllingstad public at kyllingen.NOSPAMnet
Sat Mar 6 03:12:16 PST 2010


Michael Rynn wrote:
> On the D2 online pages 
> (http://www.digitalmars.com/d/2.0/statement.html#ForeachStatement)there 
> is 
> 
> Foreach over Structs and Classes with Ranges
> 
> 
> My question is , is there a working example of  foreach ( e ; range )?
> 
> 
> Iteration over struct and class objects can be done with ranges, which 
> means the following properties must be defined:
> 
> 
> Property		Purpose
> .empty			returns true if no more elements
> .next			move the left edge of the range right one
> .retreat		move the right edge of the range left one
> .head			return the leftmost element of the range
> .toe			return the rightmost element of the range
> 
> 
> So I tried this , but foreach did not work, but using 
> the equivalent for loop code did.

Looks like you ran into a piece of hopelessly outdated documentation. 
The correct names are, in the same order:

   empty
   popFront
   popBack
   front
   back

Those should work with foreach.

-Lars


More information about the Digitalmars-d-learn mailing list