How to use labeled break in static foreach?
visitor
pierredavant at gmail.com
Wed Sep 9 17:07:12 UTC 2020
On Wednesday, 9 September 2020 at 17:02:26 UTC, visitor wrote:
> On Friday, 14 February 2020 at 06:41:02 UTC, cc wrote:
>
> import std.meta;
>
> enum A = AliasSeq!(1, 2, 3, 4);
>
> static foreach (idx, field; A) {
> static if (__traits(compiles, THREELOOP)) {} else {
> static if (field == 3) {
> pragma(msg, "Got a 3!");
> enum THREELOOP = 1; // works with enum, alias etc...
> }
> static if (idx == A.length - 1) {
> static assert(0, "Got no 3...");
> }
> }
> }
>
>
> https://run.dlang.io/is/BDmIml
oops the online editor saved a mix of an old iteration and a new
one ... (probably my fault)
import std.stdio;
float test(float x)
{
float r = -1;
static foreach(i; 0 .. 100)
{
static if (__traits(compiles, Check)) {} else {
static if (i == 10)
enum Check = 1;
r = i * x;
}
}
return r;
}
void main() {
float ret = test(4.2);
writefln("ret = %s", ret);
}
More information about the Digitalmars-d-learn
mailing list