Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2005-03-19 23:31:13

"Peter Dimov" <pdimov_at_[hidden]> writes:

>> The weak_ptr adds an extra count (1 word) but more importantly
>> requires a mutex, at least on platforms lacking more advanced
>> lock-free primitives such as InterlockedCompareExchange.
> The theoretical minimum cost of a non-intrusive pointer is:
> - per-instance pointer to the count;
> - one word for the count.
> Feature (1) above adds:
> - vtable
> - pointer
> The functor need not be present when not used, although the current code
> base does not do that. It can also be optimized out when it's an empty class
> with the help of boost::compressed_pair. Again, the current code base
> doesn't do it, but we're talking about the design-imposed overhead here.

You could also replace the vtable with a function pointer per
Boost.Function and eliminate some space overheads associated with
dynamic type info.

Dave Abrahams
Boost Consulting

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