proper bit fields in the D2 language?

grauzone none at example.net
Tue Apr 21 23:26:32 PDT 2009


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



More information about the Digitalmars-d mailing list