原文转载于:http://blog.sina.com.cn/s/blog_5f435c130101hpzi.html
[转自]lemonClover的日记
http://www.douban.com/note/180325584/
使用boost::enable_shared_from_this的注意事项
2011-10-26 16:44:26
1. 如果一个类继承了boost::enable_shared_from_this,那么之后创建这个类的对象的时候,一定要用shared_ptr封装起来。
2. 一定不要在构造函数和析构函数里面调用shared_from_this(),否则会引起十分诡异的错误。
昨天就是因为在析构函数里面调用了另一个函数,而这个函数里面使用了shared_from_this(),导致运行时出现bad_weak_ptr的错误,调试了一个晚上和一个上午才发现。
2. 一定不要在构造函数和析构函数里面调用shared_from_this(),否则会引起十分诡异的错误。
昨天就是因为在析构函数里面调用了另一个函数,而这个函数里面使用了shared_from_this(),导致运行时出现bad_weak_ptr的错误,调试了一个晚上和一个上午才发现。
【原因分析】
为什么不能在构造函数中调用shared_from_this