
on Sun Jul 29 2007, <XHChen-AT-winbond.com> wrote:
Hi All,
I studied the shared_ptr in the recent few days, and found that it uses a global reference count to determine when to delete the real pointer. The reference count is created by operator new. It is possible to remove the new operation by replacing the reference count with a linked list structure. All shared_ptr on the same real pointer should be linked in one list. Thus the length of the link list is actually the reference count. If a shared_ptr is destructed, it removes itself from the link list. And then if no other shared_ptr on the link list, it delete the real pointer.
Have you read http://www.boost.org/libs/smart_ptr/shared_ptr.htm#FAQ ? -- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com