Is flags enum needed in Phobos?
Era Scarecrow
rtcvb32 at yahoo.com
Sat Oct 13 23:34:38 PDT 2012
On Sunday, 7 October 2012 at 09:48:50 UTC, Era Scarecrow wrote:
> On Sunday, 7 October 2012 at 09:22:17 UTC, Denis Shelomovskij
> wrote:
>> I'd like to see enum syntax for flug enum. So I dislike
>> function calls like `set_flag`, `checkAll`, etc. (IMHO)
>
> You mean... binary basic syntax? That shouldn't be too hard.
> So something like..?
>
> Flags x;
> with(Flags) {
> x += one; //setflag
> x -= two; //clearflag
> x ^= four;//flipflag
> x += [one,two]; //set flags multiple, same with flipping and
> clearing
> x -= [one,two];
> x ^= [one,two];
I've added binary functionality. Looking at these notes I see I
forgot the enum/array part; And checking for binary true isn't
added yet. However I'll get to it sooner or later. Both opBinary
and opOpBinary are supported so far.
> x += one; //setflag
> x -= two; //clearflag
> x ^= four;//flipflag
x &= two; //keeponly
x |= two; //setFlag, same as +=
//should work fine, as with all operations, const/immutable
safe.
Flags y = x + one;
if (x){} //compile error, will fix later
if (x != Flags()){} //should work, compare against .init
(probably 0)
if (x.state){} //works but you shouldn't depend on this
More information about the Digitalmars-d
mailing list