我正在尝试检查shared_ptr是否未调用shared_ptr.reset()
我有一个
std::shared_ptr<Shape> m_shape;
我正在尝试
if(m_shape.reset()==false)
{
dothis();
}
我想查看并查看m_shape是否处于活动状态并正在使用...并且当shared_ptr停止使用时重置说明
但我一直在m_shape上得到一个错误,说表达式必须有算术,枚举,指针
答案 0 :(得分:1)
reset()
是一个重置shared_ptr的函数,并返回void
。它当然不会告诉您shared_ptr
当前是否正在管理对象。实际上,调用它可以保证它不再管理对象。
相反,shared_ptr
转换为bool
,告诉您它是否正在管理对象。所以你可以说
if (m_shape) {
// m_shape has an object
}