名前空間
変種
操作

std::shared_ptr::operator bool

提供: cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
 
動的メモリ管理
未初期化記憶域
(C++17)
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
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]