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
二次
另见
lock | creates a shared_ptr that manages the referenced object (public member function) |
---|---|
use_count | returns the number of shared_ptr objects that manage the object (public member function) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。