Guest User

Untitled

a guest
May 15th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. Boost shared_from_this and destructor
  2. class A{
  3. public:
  4. A( Manager * m ) : m_(m) {
  5. m_->add(this);
  6. }
  7.  
  8. ~A() {
  9. m_->remove(this);
  10. }
  11.  
  12. private:
  13. Manager * m_;
  14. };
  15.  
  16. class A : public boost::enable_shared_from_this< A > {
  17. public:
  18. typedef boost::shared_ptr< A > Ptr;
  19.  
  20. static Ptr create( Manager * m ) {
  21. Ptr p( new A(m));
  22. p->init();
  23. return p;
  24. }
  25.  
  26. ~A() {
  27. // NON-WORKING
  28. // m_->remove( shared_from_this() );
  29. }
  30.  
  31. private:
  32. A( Manager * m ) : m_(m) { }
  33.  
  34. void init() {
  35. m_->add(shared_from_this());
  36. }
  37.  
  38. Manager * m_;
  39. };
Advertisement
Add Comment
Please, Sign In to add comment