proper bit fields in the D2 language?

Daniel Keep daniel.keep.lists at gmail.com
Tue Apr 21 23:33:54 PDT 2009



grauzone wrote:
> Daniel Keep wrote:
>>
>> nobody wrote:
>>> == Quote from Brad Roberts (braddr at puremagic.com)'s article
>>>> The auto-generated code from the library is the same code the compiler
>>>> would end up generating.  You can test that theory by comparing the
>>>> produced assembly for a C vs a D implementation.
>>> If the generated code are same, and it's in the std library, which
>>> means no
>>> difference in the backend.
>>>
>>> Then I'd rather write:
>>>
>>> struct A
>>> {
>>>         bool flag1:  1;
>>>         bool flag2:  1;
>>>         // uint "",  6;   // this should be auto-magically generated
>>> by the compiler
>>> }
>>>
>>> (the code is more clear, and the compiler can give better message).
>>>
>>> than this:
>>>
>>> struct A
>>> {
>>>     mixin(bitfields!(
>>>         bool, "flag1",    1,
>>>         bool, "flag2",    1,
>>>         uint, "",         6));
>>> }
>>
>> Except that bitfields don't appear to be a widely used feature.  If you
>> can put it in the library with no performance penalty AND simplify the
>> compiler at the same time, that looks like a good thing to me, and I
>> believe Walter agrees.
> 
> Yeah, let's move everything from the compiler to the library. Damn, why
> couldn't they have const implemented as library feature?
> 
>>   -- Daniel

Except that bitfields don't appear to be a widely used feature.

  -- Daniel



More information about the Digitalmars-d mailing list