On 1/8/18 9:27 AM, H. S. Teoh wrote:
On Sun, Jan 07, 2018 at 10:39:19PM -0500, Steven Schveighoffer via 
Digitalmars-d-learn wrote:
On 1/6/18 6:25 PM, Ali Çehreli wrote:
Is 'static foreach' sufficient for all needs or is there any value
for regular foreach over compile-time sequences?

If you use continues or breaks, then you need to switch to gotos if
using static foreach, as it does not support them directly.
[...]

Are you sure?  I was under te impression that it does support continues
and breaks -- but only if they are labelled, because of a syntactic
ambiguity otherwise.

I thought it only worked for constructs outside the static foreach (like switch).

testing...

Nope, doesn't work. The ambiguity is that if you have a breakable or continuable construct outside a static foreach (e.g. switch), then you may believe that the break statement is affecting the foreach (in fact, that is how tuple-foreach works), but you are actually affecting the outer construct. The extra requirement is to help you realize the implication. It may be removed in the future.

I may have been misleading when I made my first comment. What I mean is that you *can't* break or continue a static foreach, even with labels. However, you *can* do it to a standard foreach over a tuple. This may be one reason you want to use a tuple-foreach over a static foreach.

-Steve

Reply via email to