std::shared_ptr<T>::operator bool
From cppreference.com
< cpp | memory | shared ptr
| explicit operator bool() const noexcept; |
||
*this がヌルでないポインタを保持しているか、すなわち get() != nullptr であるかを確認します。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
true : *this がポインタを保持している場合。false : それ以外の場合。
[編集] 備考
空の shared_ptr (where use_count() == 0) は、エイリアスコンストラクタを使用して作成された場合など、get() でアクセス可能なヌルでないポインタを保持することがあります。
[編集] 例
このコードを実行
#include <iostream> #include <memory> void report(std::shared_ptr<int> ptr) { if (ptr) std::cout << "*ptr=" << *ptr << "\n"; else std::cout << "ptr is not a valid pointer.\n"; } int main() { std::shared_ptr<int> ptr; report(ptr); ptr = std::make_shared<int>(7); report(ptr); }
出力
ptr is not a valid pointer. *ptr=7
[編集] 関連項目
| 格納されたポインターを返す (public メンバー関数) |