Implicit enum conversions are a stupid PITA
Nick Sabalausky
a at a.a
Thu Mar 25 01:04:23 PDT 2010
"Walter Bright" <newshound1 at digitalmars.com> wrote in message
news:hoepts$2a98$1 at digitalmars.com...
> Nick Sabalausky wrote:
>> Custom bitfields are extremely useful for low-level code. Being a
>> self-proclaimed "systems" language, there's no reason D should consider
>> such a thing to be of "narrow-usefulness".
>
> I've written a lot of low-level code, I even programmed Mattel
> Intellivision cartridges and one of those old 70's hand-held LED games
> (Mattel Soccer). I've done a lot of embedded 6800 microprocessor work,
> device drivers, graphics drivers, etc. I've done a lot of bit twiddling
> code.
>
> But I find C bit fields to be generally worthless.
>
> One reason is the standard requires them to be right justified after
> extraction. This kills performance. I muck with with them in-place using
> biased arithmetic.
Actually, with "bitfields", I've been mostly referring to pretty much just
that: doing manual bit-twiddling, typically aided by manifest constants
and/or enums, and taking the stance that doing that could use a better (ie,
more abstracted and more type-safe) interface (while still keeping the same
under-the-hood behavior).
Maybe it's all the low-level stuff I've done, but any time I come across the
term "bitfield" I instinctively envision those abstract rows of labeled
"bit" squares (or differently-sized rectangles) that you see in spec sheets
for digital hardware (ie, the abstract concept of a small piece of memory
having bit-aligned data), rather than specifically the
structs-with-sub-byte-member-alignment that I keep forgetting C has. I can't
really comment on that latter kind as I've never really used them (can't
remember why not), although I can easily believe that they may be
insufficient for the job. Maybe that difference is where the disagreement
between me and Andrei arose.
More information about the Digitalmars-d
mailing list