std::weak_ptr<T>::expired
來自 cppreference.com
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 物件的數量(公開成員函式) |