On Sun, 28 Mar 2010 13:50:20 -0300, bearophile <[email protected]>
wrote:
Robert Jacques:
No, what you can't do is hide flags in high order bits or use tricks
like
XOR to store two pointers in a single field. The 4 low order bits are
fair
game:
This page:
http://www.digitalmars.com/d/2.0/garbage.html
Says:
Do not take advantage of alignment of pointers to store bit flags in the
low order bits:
p = cast(void*)(cast(int)p | 1); // error: undefined behavior
Bye,
bearophile
Yes, hiding bit flags in pointers is generally a bad idea because it makes
your code dependent on a particular GC/CPU system. Though I do think
storing a single bit is going to work on anything greater than a 8-bit
system.