名前空間
変種
操作

std::weak_ptr<T>::expired

From cppreference.com
< cpp‎ | memory‎ | weak 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まで*)
明示的な生存期間管理
 
 
bool expired() const noexcept;
(C++11以降)

use_count() == 0 と等価です。管理対象オブジェクトのデストラクタはまだ呼び出されていないかもしれませんが、このオブジェクトの破棄は間近(または既に発生している)です。

目次

[編集] パラメータ

(なし)

[編集] 戻り値

管理対象オブジェクトが既に削除されている場合は true、そうでない場合は false

[編集] 注記

管理対象オブジェクトがスレッド間で共有されている場合、expired() が true を返す場合にのみ意味があります。

[編集]

ポインタの有効性をチェックするために expired がどのように使用されるかを示します。

#include <iostream>
#include <memory>
 
std::weak_ptr<int> gw;
 
void f()
{
    if (!gw.expired())
	std::cout << "gw is valid\n";
    else
        std::cout << "gw is expired\n";
}
 
int main()
{
    {
        auto sp = std::make_shared<int>(42);
	gw = sp;
 
	f();
    }
 
    f();
}

出力

gw is valid
gw is expired

[編集] 関連項目

参照されたオブジェクトを管理する shared_ptr を作成する
(public member function) [編集]
オブジェクトを管理する shared_ptr オブジェクトの数を返す
(public member function) [編集]
English 日本語 中文(简体) 中文(繁體)