bug in foreach continue

Adam D. Ruppe via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Mar 17 09:37:55 PDT 2017


On Friday, 17 March 2017 at 15:14:08 UTC, Hussien wrote:
> What I am talking about is

If you want to add a new feature, `static foreach`, that has 
static continue and static break, I can get behind that, but 
that's a new feature, not a bug in the existing feature. You 
think it is something it isn't.

`static if` is unique in D. Nothing else works like it. There is 
no static switch, no static foreach. Regular switch and foreach 
can work on compile time values, but they don't actually change 
their behavior like static if does, they work the same as always. 
The best you get is that the current value of the foreach can 
inherit the compile-time staticness of what it is looping, 
allowing you to use it in a few more places (notably in static 
if), but the loop construct itself is the same.

That's it. It does not do special flow control, it does not 
change scopes or compile requirements.

A new `static foreach` that DOES do those things, and works in 
places `static if` currently works like outside functions, would 
be a cool new feature. But until that's added, stop thinking of 
"static foreach" as being a special thing in the language now. It 
isn't there. It is just regular foreach and thinking of it as 
that, always, will make things a lot easier.


Then you can join the calls for a new `static foreach` that 
explicitly IS compile time! And we'll be on the same page there.


More information about the Digitalmars-d-learn mailing list