Timon Gehr:

This builds the array once at compile time:

static immutable members = [EnumMembers!Foo];
foreach(m; members){

}

Right:

import std.traits;
enum Foo { A, B, C, D, E, F }
int main() {
    static immutable members = [EnumMembers!Foo];
    int count = 0;
    foreach (m; members) count++;
    foreach (m; members) count++;
    return count;
}


__Dmain:
        push EAX
        xor EAX, EAX
        xor EDX, EDX
        cmp _D4temp4mainFZi7membersyAE4temp3Foo, EAX
        je  L17
LD:     inc EAX
        inc EDX
        cmp EDX, _D4temp4mainFZi7membersyAE4temp3Foo
        jb  LD
L17:    xor EDX, EDX
        cmp _D4temp4mainFZi7membersyAE4temp3Foo, EDX
        je  L2B
L21:    inc EAX
        inc EDX
        cmp EDX, _D4temp4mainFZi7membersyAE4temp3Foo
        jb  L21
L2B:    pop ECX
        ret

Bye,
bearophile

Reply via email to