iterate over enum name:value pairs
    Jay Norwood 
    jayn at prismnet.com
       
    Sat Dec  7 21:11:23 PST 2013
    
    
  
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
    
    
More information about the Digitalmars-d-learn
mailing list