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