枚举反思

Nor*_*löw 5 reflection foreach enumeration d

D是否提供了一些反映枚举值的方法,比如e,通常迭代它的每个值有点类似于.tupleof结构和类.我想我们总能做到

foreach (val; e.min..e.max)
Run Code Online (Sandbox Code Playgroud)

但是不连续的枚举呢?枚举包括最大值,但范围不包括.

更新:我刚刚发现:http://dlang.org/phobos/std_traits.html#.EnumMembers

我相信这一切我们需要的吗?

Ada*_*ppe 8

std.traits.EnumMembers可以做到,也可以做到__traits(allMembers,YourEnum).

foreach(value, name; EnumMembers!YourEnum) { } 听起来像你想要的.