boost weak_ptr使用
来源:互联网 发布:mac迅雷链接不合法 编辑:程序博客网 时间:2024/05/18 05:09
weak_ptr被设计为shared_ptr的助手,可以从一个shared_ptr或者另一个weak_ptr对象构造,获得资源的观测权,但是weak_ptr没有去共享资源,它的构造不会引起指针引用计数的增加,同样,weak_ptr析构也不会引起指针引用计数的减少
weak_ptr没有重载operator*和operator->,这是特意的。但是可以使用一个非常重要的成员函数lock(),从被观测的shared_ptr获得一个可用的shared_ptr对象,从而操作资源.当expired() == true的时候,lock()函数将返回一个存储空指针的shared_ptr() 下面举个例子:
shared_ptr<int> sp(new int(10));
assert(sp.use_count() == 1);
weak_ptr<int> wp(sp); //从shared_ptr创建weak_ptr
assert(wp.use_count() == 1); //weak_ptr不影响引用计数
if (!wp.expired()) //判断weak_ptr观察的对象shared_ptr是否失效
{
shared_ptr<int> sp2 = wp.lock(); //获得一个shared_ptr
*sp2 = 100;
assert(wp.user_count() == 2)
} //退出作用于,sp2自动析构,引用计数减1
assert(wp.sue_count() == 1);
sp.reset(); // shared_ptr失效
assert(wp.expired());
assert(!wp.lock()); //weak_ptr将获得一个空指针
- boost weak_ptr使用
- boost::weak_ptr
- boost::weak_ptr和enable_shared_from_this
- boost::weak_ptr和enable_shared_from_this
- boost::weak_ptr和enable_shared_from_this
- boost::weak_ptr和enable_shared_from_this
- boost学习之-weak_ptr
- 智能指针boost::weak_ptr
- boost::weak_ptr和enable_shared_from_this
- boost::weak_ptr和enable_shared_from_this
- boost::weak_ptr和enable_shared_from_this
- 悬挂指针与boost::weak_ptr
- boost之shared_ptr,weak_ptr计数
- Boost智能指针—weak_ptr
- C++ boost智能指针weak_ptr
- Boost源码学习---weak_ptr.hpp
- [7]智能指针boost::weak_ptr
- 智能指针之boost::weak_ptr
- response.sendRedirect(重定向)和request.getRequestDispatcher (转发)区别
- 用PyInstaller把Python代码打包成单个独立的exe可执行文件
- Linux 中ps命令详解
- 键盘明文密文转换笔记
- PAT 乙级 1047. 编程团体赛(20)
- boost weak_ptr使用
- Android-ConstraintLayout使用笔记(二)
- Python Numpy Tutorials: 函数
- 利用python实现任意进制的相互转换
- PAT 乙等 1023 组个最小数
- 如何解决catalina.out文件过大的问题
- swift 显示3D地图
- [py]面向对象-对象的访问
- 安装xgboost