#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <list>
class SomeClass : public boost::enable_shared_from_this<SomeClass>
{
public:
SomeClass() {}
~SomeClass() {}
void setParent(boost::shared_ptr<SomeClass> pParent);
boost::shared_ptr<SomeClass> m_pParent;
std::list<boost::shared_ptr<SomeClass> > m_listChildren;
};
void SomeClass::setParent(boost::shared_ptr<SomeClass> pParent)
{
m_pParent = pParent;
m_pParent->m_listChildren.push_back(shared_from_this());
}