On Tuesday, 29 September 2015 at 03:31:44 UTC, Nicholas Wilson wrote:
so I have a bunch of enums (0 .. n) that i also want to represent as flags ( 1 << n foreach n ). Is there anyway to do this other than a string mixin?

use like:

enum blah
{
    foo,
    bar,
    baz,
}

alias blahFlags = EnumToFlags!blah;

static assert(blahFlags.baz == 1 << blah.baz)

Answering a slightly different question, I just wanted to be sure you're aware of this old idiom:

enum blah
{
    foo = 0b1;
    bar = 0b10;
    baz = 0b100;
    //and so on...
}

auto fdsa = blah.foo | blah.baz;
assert(fdsa & blah.foo);
assert(fdsa & blah.baz);
assert(!(fdsa & blah.bar));

Reply via email to