名前空間
変種

std::shared_ptr<T>::operator bool

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
<tbody> </tbody>
explicit operator bool() const noexcept;

*this が非ヌルなポインタを格納している、すなわち get() != nullptr かどうかを調べます。

引数

(なし)

戻り値

*this がポインタを格納していれば true、そうでなければ false

ノート

空 (use_count() == 0) の shared_ptr が get() でアクセス可能な非ヌルのポインタを格納している場合があります。 例えば、エイリアシングコンストラクタを使用して、そのような shared_ptr を作ることができます。

#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

関連項目

格納されているポインタを返します
(パブリックメンバ関数) [edit]