Since we do not have attributes for enums, I use _ in front of the names for meta values.

I need to get the non-meta values for the enum so I can iterate over it and use it properly.

enum myEnum
{
    _Meta1 = 0,
    A,B,C,
    _Meta3 = 43,
    D = 3,
}

The num, for all practical purposes does not contain _Meta1, and_Meta3. But in code I use to!myEnum(intI) and having the meta values complicate things(simple shifting may or may not work).

I also need to create array indexers based on myEnum that don't include the meta characters.

What I do a lot is convert integers in to fields of the enum.

If I do not include any Meta, then it is straight forward to!myEnum(i), but with them it is not, so doing things like

int[myEnum] x;

x[to!myEnum(i))] is difficult because the conversion will be invalid for meta. I'd have to do some work on i to get the 0-n representation to map properly in to the enum... basically avoiding the meta fields.

This would all be solved with attributes for enums, but that, I suppose is a pipe dream.

Any ideas how I can make this easy?




Reply via email to