名前空間
変種
操作

std::shared_ptr<T>::operator bool

From cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
メモリリソース
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
 
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 メンバー関数) [編集]
English 日本語 中文(简体) 中文(繁體)