我想检查一下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?