web-dev-qa-db-ja.com

スマートポインタがnullかどうかをテストするための推奨される方法はありますか?

std::shared_ptrがnullかどうかを確認しようとしています。することの間に違いはありますか

std::shared_ptr<int> p;
if (!p) { // method 1 }
if (p == nullptr) { // method 2 }
12
Sidd

することの間に違いはありますか

 std::shared_ptr<int> p;
 if (!p) { // method 1 }
 if (p == nullptr) { // method 2 }

いいえ、違いはありません。その操作のいずれかに 適切に定義されたオーバーロード があります。

別の同等物は

 if(p.get() == nullptr)
12