E.g.:
enum Metrics : int
{
SM_CXSCREEN = 0,
SM_CYSCREEN,
SM_CXVSCROLL,
SM_CYHSCROLL,
SM_CYCAPTION,
SM_CXBORDER,
}
void foo(int m)
{
}
void main()
{
foreach (m; Metrics)
{
foo(m);
}
}
This won't work.
I know there's traits to get strings at compile time, e.g.:
auto b = [ __traits(allMembers, Metrics) ];
but this doesn't help me try out those enum values at runtime. It could almost
work if I could use a mixin() in a foreach loop, but that's lucid dreaming.
Another alternative might be to create an array out of the enum, but I don't
know of any way of doing this.