From: Phil Bouchard (philippe_at_[hidden])
Date: 2008-03-10 06:59:37
I am happy re-submitting after 4 years my final design and implementation
proposal of "shifted_ptr" which includes very useful tools named "list",
"stack" and "roofof". The new containers consisting of STL-like ones but
offering external access to the nodes, removing the need of dynamically
allocated nodes and thus offers multi-dimensional control over their
elements. "roofof" is a one line helper function used in conjunction with
the mentionned containers to find the root address of the class housing the
member used by the container in question.
In contrast with its previous submission, "shifted_ptr" now relates to a
memory manager of constant complexity and of size: sizeof(void *) * 2. It
take advantage of the low-memory consuption, fast execution and very
versatile interface. It proposes a very different concept, removes the need
of current functions such as: "enable_shared_from_this", destroys the
"cyclic pointer" problem and is now perfectly type-safe. The former
reference counted smart pointer was renamed to "shifted_ptr_base" and merged
properly with Boost standards.
Morever "shiifted_ptr" is closely tied to the current "shared_ptr" that uses
objects derived from "sp_counted_base". This was extended to objects
deriving from "owned_base", which includes the necessary information that is
handled by the smart pointer plus a smart destructer that differentiates
arrays from standard objects and destroys the object accordingly.
I have not yet written entirely its documentation but I have included a well
documented reference to its API. I would like to schedule a review for now
and by then the documentation shall be completed. I am also aware the
library doesn't yet handle multi-threaded applications but I would like to
start with getting the library better known. The theory behind is perfectly
reliable but I can't say I forgot technical issues.
The library is located at:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk