如何无效检查boost:shared_ptr,其中px为0x0,但是pn具有十六进制值?

时间:2019-05-15 10:22:46

标签: c++ boost null shared-ptr

我想检查一下shared_ptr是否有效。 我有一个shared_ptr ptr,并且正在使用get函数来获取ptr。 在get函数中,ptr以以下方式初始化,

boost::shared_ptr<Class-name> get_function(){
shared_ptr<Class-name> ptr = (boost::shared_ptr <Class-name> ((Class-name*) 0));
}

在主功能中,我进行了检查:

    int main(){
    shared_ptr ptr = get_function();
        if(ptr){
        //do something
        }
}

理想情况下,如果按原样在get-function返回初始化的ptr时失败了。但是在我的情况下,尽管我的shared_pointer无效,但程序仍执行“执行某些操作”。 在Gdb中,共享ptr的值为:

ptr = {px = 0x0, pn = {pi_ = 0x7f2400009050}}

那么,如何使null / empty检查shared_ptr?

0 个答案:

没有答案