Changing the foreach key...

Chris Nicholson-Sauls ibisbasenji at gmail.com
Mon Oct 30 12:41:21 PST 2006


Karen Lanrap wrote:
> Lionello Lunesu wrote:
> 
> 
>>Is this according to the spec?
> 
> 
> No. According to the specs the index cannot be "inout" for arrays.
> 
> Therefore "++i" is allowed but should have no effect on the number of 
> executions of the body of the foreach statement.

I don't believe the posted example used the index as 'inout' -- which is, indeed, 
considered illegal by the spec.  Instead it was a normal 'in' index, which was being 
manually advanced to skip an iteration.  As far as I am aware, no this isn't covered by 
the spec.  However, maybe it should be, and should be allowed; it is a very useful way to 
have consumer elements in things like parameter lists.  Or if we could get a "skip" analog 
to break/continue... which I think has been discussed to some depth before.

(I admit to having written a few snips of code that rely on this behavior.  Naughty? 
Sure.  But it worked like a charm.)

-- Chris Nicholson-Sauls



More information about the Digitalmars-d-learn mailing list