std::weak_ptr<T>::expired
来自cppreference.com
工具库
动态内存管理
|
std::weak_ptr
成员函数 | ||||
修改器 | ||||
观察器 | ||||
weak_ptr::expired
|
||||
非成员函数 | ||||
辅助类 | ||||
(C++20)
|
||||
推导指引(C++17) |
bool
expired() const noexcept;
|
(C++11 起) | |
等价于 use_count() == 0 。可能仍未对被管理对象调用析构函数,但此对象的析构已经临近(或可能已发生)。
参数
(无)
返回值
若被管理对象已被删除则为 true ,否则为 false 。
注意
若被管理对象在线程间共享,则此函数内在地不可靠,通常 false 结果可能在能用之前就变得过时。 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 对象数量 (公开成员函数) |