Thanks.  This is exactly what I was looking for.

I tried this iteration below, based on the example shown in the std.traits documentation, and the int values are not what I expected, but your example works fine.

http://dlang.org/phobos/std_traits.html#.EnumMembers


import std.traits;

void main()
{
    enum Suit { spades, hearts=4, diamonds=10, clubs }

    foreach (i, member; EnumMembers!Suit)
    {
        writefln("%s: %d", member, i);
    }

}


D:\dprojects\ConsoleApp1\ConsoleApp1>dmd -run main.d
spades: 0
hearts: 1
diamonds: 2
clubs: 3

but the same example, substituting writefln("%s: %d", member, member) prints

D:\dprojects\ConsoleApp1\ConsoleApp1>dmd -run main.d
spades: 0
hearts: 4
diamonds: 10
clubs: 11

Reply via email to