std::weak_ptr<T>::reset

来自cppreference.com
< cpp‎ | memory‎ | weak ptr
 
 
内存管理库
(仅用于阐述*)
分配器
未初始化内存算法
受约束的未初始化内存算法
内存资源
未初始化存储(C++20 前)
(C++17 弃用)
(C++17 弃用)
垃圾收集器支持(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
 
 
void reset()noexcept;
(C++11 起)

释放被管理对象的所有权。调用后 *this 不管理对象。

目录

[编辑]参数

(无)

[编辑]返回值

(无)

[编辑]示例

#include <iostream>#include <memory>   int main(){auto shared =std::make_shared<int>(), shared2 = shared, shared3 = shared2;   auto weak =std::weak_ptr<int>{shared};   std::cout<<std::boolalpha<<"shared.use_count(): "<< shared.use_count()<<'\n'<<"weak.use_count(): "<< weak.use_count()<<'\n'<<"weak.expired(): "<< weak.expired()<<'\n';   weak.reset();   std::cout<<"weak.reset();\n"<<"shared.use_count(): "<< shared.use_count()<<'\n'<<"weak.use_count(): "<< weak.use_count()<<'\n'<<"weak.expired(): "<< weak.expired()<<'\n';}

输出:

shared.use_count(): 3 weak.use_count(): 3 weak.expired(): false weak.reset(); shared.use_count(): 3 weak.use_count(): 0 weak.expired(): true

[编辑]参阅

检查被引用的对象是否已删除
(公开成员函数)[编辑]
close