reinterpret array

Dominikus Dittes Scherkl via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jan 13 12:52:13 PST 2015


On Tuesday, 13 January 2015 at 20:11:45 UTC, anonymous wrote:
> On Tuesday, 13 January 2015 at 20:00:57 UTC, Dominikus Dittes 
> Scherkl wrote:
>> So if I have a function that allowes to do this:
>>
>> uint a;
>> a.bit[16] = true;
>> writeln(a); // 65536
>>
>> Is it also already available?
>
> a |= 1 << 16;

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 :-/


More information about the Digitalmars-d-learn mailing list