boost智能指针shared_ptr Assertion px != 0 failed

来源:互联网 发布:mac怎么安装输入法 编辑:程序博客网 时间:2024/06/05 11:18

这个问题的出现是因为没有正确的初始化智能指针,而且你又用了这个未初始化的智能指针。
如:

boost::shared_ptr<Obj> obj;obj->Something(); // assertion failed

而正确的初始化应该这样:

boost::shared_ptr<Obj> obj(new Obj);obj->Something(); // ok

强烈建议在声明时就进行初始化,否则很难根据报错找出未初始化的智能指针。