Iterating through enumeration
bearophile
bearophileHUGS at lycos.com
Sun Aug 12 07:26:50 PDT 2012
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
More information about the Digitalmars-d-learn
mailing list