reinterpret array

anonymous via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jan 13 13:15:05 PST 2015


On Tuesday, 13 January 2015 at 20:52:15 UTC, Dominikus Dittes 
Scherkl wrote:
> Of course you can calculate it, but the
> syntax looks quite different if you want to do
> a.bit[22] = false:
>
> a &= ~(1<<16);
>
> Or if you want to test a bit:
>
> if(a.bit[16])
>
> instead of
>
> if(a & (1<<16))
>
> much more convenient for arrays:
>
> ulong[100] a;
>
> a.bit[3000] = true;
>
> doing this directly with shifts is lousy (and error prone)
>
> But ok. I see, it's not really awesome :-/

I didn't mean to put a stop to your idea just because we have 
bitwise operators. You're totally right: They're somewhat 
cumbersome and easy to get wrong.

We also have std.bitmanip.BitArray which is what you're after, I 
think:

import std.bitmanip: BitArray;
BitArray ba;
ba.length = 3001;
ba[3000] = true;


More information about the Digitalmars-d-learn mailing list