Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Boost shared_from_this and destructor
- class A{
- public:
- A( Manager * m ) : m_(m) {
- m_->add(this);
- }
- ~A() {
- m_->remove(this);
- }
- private:
- Manager * m_;
- };
- class A : public boost::enable_shared_from_this< A > {
- public:
- typedef boost::shared_ptr< A > Ptr;
- static Ptr create( Manager * m ) {
- Ptr p( new A(m));
- p->init();
- return p;
- }
- ~A() {
- // NON-WORKING
- // m_->remove( shared_from_this() );
- }
- private:
- A( Manager * m ) : m_(m) { }
- void init() {
- m_->add(shared_from_this());
- }
- Manager * m_;
- };
Advertisement
Add Comment
Please, Sign In to add comment