std::weak_ptr::expired

来自cppreference.com
< cpp‎ | memory‎ | weak ptr

 
 
 
 
 
bool expired() const;
(C++11 起)
检查是否被管理对象已经被删除。相当于use_count() == 0.
原文:
Checks whether the managed object has already been deleted. Equivalent to use_count() == 0.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

(无)
原文:
(none)
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

true如果被管理对象已经被删除,false否则.
原文:
true if the managed object has already been deleted, false otherwise.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

noexcept 规定:  
noexcept
  

[编辑] 注释

expired()可能会更快,比use_count().
原文:
expired() may be faster than use_count().
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

演示如何使用过期的检查有效性的指针.
原文:
Demonstrates how expired is used to check validity of the pointer.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

#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所管理对象的引用计数
(公开成员函数) [编辑]