D是否提供了一种反映枚举值的方法,比如说e
,通常迭代它的每个值与结构和类的.tupleof
类似。我想我们总能做到
foreach (val; e.min..e.max)
但是不连续的枚举呢?并且枚举包括最大值,但范围不包括。
更新:我刚发现:http://dlang.org/phobos/std_traits.html#.EnumMembers
我相信这一切我们需要的吗?
答案 0 :(得分:8)
std.traits.EnumMembers
可以做到,__traits(allMembers,YourEnum)
也可以。
foreach(value, name; EnumMembers!YourEnum) { }
听起来就像你想要的那样。