Thread overview
continue in static foreach
Jan 12, 2018
Marc
Jan 12, 2018
H. S. Teoh
Jan 13, 2018
Marc
Jan 13, 2018
Seb
January 12, 2018
How do I use?

> static foreach(enum string member; members) {
> 			static if(isFunction!(__traits(getMember, C, m ember))) {
> 				continue;
> 			}

give error:

> must use labeled continue within static foreach

then I tried:

> outer:static foreach(enum string member; members) {
>			static if(isFunction!(__traits(getMember, C, > member))) {
>				continue outer;
>			}

give error:

> Error: enclosing label outer for continue not found

How do I fix it?
January 12, 2018
On Fri, Jan 12, 2018 at 10:03:40PM +0000, Marc via Digitalmars-d-learn wrote:
> How do I use?
> 
> > static foreach(enum string member; members) {
> > 			static if(isFunction!(__traits(getMember, C, member))) {
> > 				continue;
> > 			}
> 
> give error:
> 
> > must use labeled continue within static foreach
> 
> then I tried:
> 
> > outer:static foreach(enum string member; members) {
> > 			static if(isFunction!(__traits(getMember, C, member))) {
> > 				continue outer;
> > 			}
> 
> give error:
> 
> > Error: enclosing label outer for continue not found
> 
> How do I fix it?

Unfortunately, this is currently not supported. You'll have to use an else-clause to handle the case when the condition is false.


T

-- 
Why waste time reinventing the wheel, when you could be reinventing the engine? -- Damian Conway
January 13, 2018
On Friday, 12 January 2018 at 22:03:53 UTC, H. S. Teoh wrote:
> On Fri, Jan 12, 2018 at 10:03:40PM +0000, Marc via Digitalmars-d-learn wrote:
>> How do I use?
>> 
>> > static foreach(enum string member; members) {
>> > 			static if(isFunction!(__traits(getMember, C, member))) {
>> > 				continue;
>> > 			}
>> 
>> give error:
>> 
>> > must use labeled continue within static foreach
>> 
>> then I tried:
>> 
>> > outer:static foreach(enum string member; members) {
>> > 			static if(isFunction!(__traits(getMember, C, member))) {
>> > 				continue outer;
>> > 			}
>> 
>> give error:
>> 
>> > Error: enclosing label outer for continue not found
>> 
>> How do I fix it?
>
> Unfortunately, this is currently not supported. You'll have to use an else-clause to handle the case when the condition is false.
>
>
> T

thanks
January 13, 2018
On Saturday, 13 January 2018 at 01:07:24 UTC, Marc wrote:
> On Friday, 12 January 2018 at 22:03:53 UTC, H. S. Teoh wrote:
>> On Fri, Jan 12, 2018 at 10:03:40PM +0000, Marc via Digitalmars-d-learn wrote:
>>> How do I use?
>>> 
>>> > static foreach(enum string member; members) {
>>> > 			static if(isFunction!(__traits(getMember, C, member))) {
>>> > 				continue;
>>> > 			}
>>> 
>>> give error:
>>> 
>>> > must use labeled continue within static foreach
>>> 
>>> then I tried:
>>> 
>>> > outer:static foreach(enum string member; members) {
>>> > 			static if(isFunction!(__traits(getMember, C, member))) {
>>> > 				continue outer;
>>> > 			}
>>> 
>>> give error:
>>> 
>>> > Error: enclosing label outer for continue not found
>>> 
>>> How do I fix it?
>>
>> Unfortunately, this is currently not supported. You'll have to use an else-clause to handle the case when the condition is false.
>>
>>
>> T
>
> thanks

It was mentioned in DIP1010, but that bit hasn't been accepted yet:

https://github.com/dlang/DIPs/blob/master/DIPs/DIP1010.md#static-break-and-static-continue