- 遇到这样的问题
0x753235D2 处(位于 LiveSdkDemo.exe 中)有未经处理的异常: Microsoft C++ 异常: std::bad_weak_ptr,位于内存位置 0x0ABBF7A0 处。
- 这是因为 在构造函数中获取weakptr,此时对象还未构造,因此返回这样的异常
参考文章
- 参考
bad_weak_ptr的原因
原创华秋实 最后发布于2014-10-18 18:22:19 阅读数 7532 收藏
展开
前几天解了一个bug,表象是调用shared_from_this的时候就跑出bad_weak_ptr异常,类A明明是继承自boost::enable_shared_from_this的,一时搞不明白为什么,后来搜了下出现“bad_weak_ptr异常”可能的原因才找到问题所在:创建类A的对象的时候没有用智能指针包裹,而是直接new的裸指针。
【引申】
enable_from_this 的使用与实现原理说明:
shared_from_this()是enable_shared_from_this的