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