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 对象的数量(公共成员函数) |