Boost logo

Boost :

From: Scott Maxwell (scott_at_[hidden])
Date: 2003-04-17 09:55:39


Hi All,

I have created a new shared_ptr class called shared_ptr_embedded. This is
based on the code for intrusive_ptr but differs in one important
aspect. The struct/class pointed to is required to be derived from
shared_ptr_count. The latter class contains an 'int count_' and methods
for adding and removing references. This allows you to have the count
embedded in your primary data, rather than having a separate allocation for
count as shared_ptr does.

Here is an example:

#include <boost/shared_ptr_embedded.hpp>

class SharedName
{
         struct Data : public boost::shared_ptr_count
         {
                 std::string name_;
         };
         boost::shared_ptr_embedded<Data> data_;
public:
         SharedName(std::string n) : data_(new Data) { data_->name_ = n; }
         const std::string& GetName() { return data_->name_; }
         SharedName& operator=(std::string n) { data_->name_ = n; return
*this; }
};

I think this would be a valuable addition to the boost suite. How would I
go about submitting this?

Scott Maxwell
PocketPurchase, Inc.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk