|
Boost : |
From: Philippe A. Bouchard (philippeb_at_[hidden])
Date: 2002-10-02 12:01:21
I've made a different version of placed_ptr<> which uses compile time
information (traits) to determine what method of destruction to use for
their allocated object: reference counts, garbage collection or simple
ownership.
- no more run-time if ();
- garbage collection is the default one because it accepts a larger margin
of error. RC and OS should be considered optimization;
- RC is the default one for typename up to now, but I would suggest some
GC2... a different GC that would postpone their deallocations with no
cyclic_ptr overhead;
- OS should be used for container node allocations primarily for example;
- simple_tree is the default one;
- (po) is faster to type than (rc), (gc) or (os) ;)
- (I'm persuated consecutive deallocations can be optimized);
- (cyclic_ptr not implemented yet it this example):
http://groups.yahoo.com/group/boost/files/ptr/ct_collector/
Does someone knows a method to determine whether some class has a virtual
table at compile time? (I'm thinking of address ranges reported by the
first void * but it would not be easy to port).
BTW: placed_ptr<T, U, os_collector> not owning its target is a weak pointer.
-- Philippe A. Bouchard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk