名稱空間
變體
操作

std::weak_ptr<T>::expired

來自 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
(公開成員函式) [編輯]
返回管理該物件的 shared_ptr 物件的數量
(公開成員函式) [編輯]