a string containing the definition of an enum named name and with enumerator names given by Es, optionally prepended with prefix and appended with suffix.
TODO: Move to Phobos std.typecons
import std.meta : AliasSeq; struct E(T) { T x; } alias Types = AliasSeq!(byte, short, int*, E!int*); alias Type = makeEnumFromSymbolNames!(`_`, `_`, true, false, Types); static assert(is(Type == enum)); static assert(Type.undefined.stringof == `undefined`); static assert(Type._byte_.stringof == `_byte_`); static assert(Type._short_.stringof == `_short_`); static assert(Type._intPtr_.stringof == `_intPtr_`); static assert(Type._EPtr_.stringof == `_EPtr_`);
import std.meta : AliasSeq; struct E(T) { T x; } alias Types = AliasSeq!(byte, short, int*, E!int*); alias Type = makeEnumFromSymbolNames!(`_`, `_`, true, true, Types); static assert(is(Type == enum)); static assert(Type.undefined.stringof == `undefined`); static assert(Type._g_.stringof == `_g_`); static assert(Type._s_.stringof == `_s_`); static assert(Type._Pi_.stringof == `_Pi_`);