My thoughts & experiences with D so far, as a novice D coder
bearophile
bearophileHUGS at lycos.com
Wed Mar 27 10:56:17 PDT 2013
Nick Sabalausky:
> enum Options
> {
> FeatureA = 0b0000_0001;
> FeatureB = 0b0000_0010;
> FeatureC = 0b0000_0100;
> FeatureD = 0b0000_1000;
> // etc...
> }
>
> // Use features A and C
> auto myOptions = Options.FeatureA | Options.FeatureC;
>
> That possibility means that D *can't* check for validity as you
> suggest.
>
> I'm convinced that scenario *should* be considered an entirely
> separate
> thing because cramming it together with regular enumerations
> creates
> conflicting goals with the two usages of "enum", and forces
> unfortunate
> design compromises with both.
This was discussed in past. A library code BitFlags similar to
struct bitfields is probably able to solve most of this problem
in a mostly type safe way. If you want a built-in solution, with
a @bitflags, you will have to wait longer.
Bye,
bearophile
More information about the Digitalmars-d
mailing list