是否有推荐的方法来测试智能指针是否为空?

时间:2016-11-29 00:43:33

标签: c++ c++11 shared-ptr smart-pointers

我试图检查std::shared_ptr是否为空。做

之间有区别吗?
std::shared_ptr<int> p;
if (!p) { // method 1 }
if (p == nullptr) { // method 2 }

1 个答案:

答案 0 :(得分:10)

  

之间有区别吗?
 std::shared_ptr<int> p;
 if (!p) { // method 1 }
 if (p == nullptr) { // method 2 }

不,没有区别。这两项操作都有properly defined overload

另一个等价物是

 if(p.get() == nullptr)