我试图检查std::shared_ptr
是否为空。做
std::shared_ptr<int> p;
if (!p) { // method 1 }
if (p == nullptr) { // method 2 }
答案 0 :(得分:10)
做
之间有区别吗?std::shared_ptr<int> p; if (!p) { // method 1 } if (p == nullptr) { // method 2 }
不,没有区别。这两项操作都有properly defined overload。
另一个等价物是
if(p.get() == nullptr)