My thoughts & experiences with D so far, as a novice D coder

Steven Schveighoffer schveiguy at yahoo.com
Wed Mar 27 10:36:46 PDT 2013


On Wed, 27 Mar 2013 13:32:06 -0400, deadalnix <deadalnix at gmail.com> wrote:

> On Wednesday, 27 March 2013 at 16:52:27 UTC, Nick Sabalausky wrote:
>> Honestly, I hate that, too. The problem is that enum is (unfortunately)
>> intended to do double-duty as a bitfield so you can do something like
>> this:
>>
>> 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.
>>
>
> It can. myOptions is an int here, as Options would decay to its base  
> type.

No, it's not.  try it.  I thought as you did too until recently.

And before you go checking, it's not a bug, it's functioning per the spec.

-Steve


More information about the Digitalmars-d mailing list