Boost logo

Boost :

From: Fabrice Truillot (fte_at_[hidden])
Date: 2000-07-17 16:44:04

on 17.7.2000 21:54, Thant Tessman at thant_at_[hidden] wrote:

> Okay, here they are. I've also included a very simple test program.
> ("circ_ptr" isn't the greatest name, but in my original implementation
> they're called "Ptr".)

Can I suggest an optimisation ? In your RawHandle, you can use some sort of
union between the void* raw pointer and the boolean. On most
implementations, the pointers are always at least 2-byte aligned (4-bytes
for my Macintosh). So, you can use the least significant bit to store your

Under CodeWarrior 5.3, MacOS, sizeof (RawPointer) == 8, and with the
proposed optimisation, 4 bytes.

Hints :

struct pointer_and_bit
    void* ptr;

    bool bit () { return (ptr & 1); };
    void bit (bool b)
            if (b) ptr |= 1;
            else ptr &= ~1;

    ... operator -> ...

Sorry for this java/c++ pseudo-code. Some type cast must be applied too.


Boost list run by bdawes at, gregod at, cpdaniel at, john at