在线文档教程
C++
应用 | Utilities

std::weak_ptr::expired

性病:弱[医]PTR::过期

bool expired() const;(since C++11)

检查托管对象是否已被删除。相当于use_count() == 0...

参数

%280%29

返回值

true如果托管对象已被删除,false否则。

例外

noexcept规格:

noexcept

注记

如果托管对象在线程之间共享,则此函数本质上是动态的。特别是,一个错误的结果可能在使用之前就会变得陈旧。真正的结果是可靠的。

演示如何使用过期来检查指针的有效性。

二次

#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

二次

另见

lockcreates a shared_ptr that manages the referenced object (public member function)
use_countreturns the number of shared_ptr objects that manage the object (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/Memory/WILE[医]PTR/过期