I've got a comment and a question... 1) Couldn't the "backpointer" just be a constant reference? Backpointers, in my mind, don't have anything to do with ownership, so a shared_ptr woulnd't be appropriate. 2) shared_from_this? I can't find that one in any of the headers or docs I downloaded with 1.28. I did find shared_count in (oddly enough) shared_count.hpp, which looks like it would prevent two seperate shared_ptr's from causing a double-delete... pretty slick, but I couldn't find any docs on it. --Mark Storer Software Engineer Cardiff Software #include <disclaimer> typedef std::disclaimer<Cardiff> Discard; -----Original Message----- From: David Abrahams [mailto:yg-boost-users@m.gmane.org] Sent: Sunday, September 29, 2002 4:12 PM To: boost-users@yahoogroups.com Subject: [Boost-Users] Re: Use a shared_ptr as a 'backpointer'? <dick.bridges@tais.com> wrote in message news:OF699D7956.EED22A4F-ON88256C43.00722AD0@tais.net...
I run into situations where it's useful for an object to have a 'backpointer' to the object instance that created it (example below). Is there a pattern/idiom for doing this using shared_ptr? Or maybe I need to re-think the idea of the backpointer in the first place?
class Bar; class Foo { public: Foo(shared_ptr<Bar>); private: shared_ptr<Bar> p; }; class Bar : boost::shared_count { void doit() { new Foo(boost::shared_from_this(this)); // <<< new Foo(this) obviously won't work. } }; HTH, Dave -- ----------------------------------------------------------- David Abrahams * Boost Consulting dave@boost-consulting.com * http://www.boost-consulting.com Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/