C++怎么使用std::weak_ptr打破share_ptrs造成的循环
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容介绍了"C++怎么使用std::weak_ptr打破share_ptrs造成的循环"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况
千家信息网最后更新 2024年09月22日C++怎么使用std::weak_ptr打破share_ptrs造成的循环
本篇内容介绍了"C++怎么使用std::weak_ptr打破share_ptrs造成的循环"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
R.24: 使用std::weak_ptr打破share_ptrs造成的循环
Reason(原因)
shared_ptr依靠使用计数动作,而循环构造(例如相互持有shared_ptr,译者注)可能导致计数永远不归零,因此我们需要一种机制打破这种循环。
Example(示例)
#include
class bar;
class foo
{
public:
explicit foo(const std::shared_ptr& forward_reference)
: forward_reference_(forward_reference)
{ }
private:
std::shared_ptr forward_reference_;
};
class bar
{
public:
explicit bar(const std::weak_ptr& back_reference)
: back_reference_(back_reference)
{ }
void do_something()
{
if (auto shared_back_reference = back_reference_.lock()) {
// Use *shared_back_reference
}
}
private:
std::weak_ptr back_reference_;
};
Enforcement(实施建议)
差不多不可能。如果你能静态检查到循环,我们将不需要weak_ptr。
"C++怎么使用std::weak_ptr打破share_ptrs造成的循环"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
循环
C++
内容
更多
知识
实用
学有所成
差不多
接下来
动作
原因
困境
实际
建议
情况
文章
机制
案例
示例
编带
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql数据库如何在电脑上安装
清远卫星软件开发厂家直销
上海激光套料软件开发商
四川邮电网络技术单招录取分数线
江湖悠悠全新服务器
如何考察软件开发
sql跨服务器可以连接索引吗
安卓软件开发 分辨率
河南信息化软件开发服务价格优惠
速记英语单词软件开发
游戏王数据库裁定是什么意思
sql用什么模型构建数据库
靖江软件开发哪家好
网络安全西安
网络安全定义属性
研招网服务器错误是怎么回事
mc国服官方服务器
完善国家网络安全保障体系
wincc数据存到数据库
铜山区软件开发创造辉煌
连云港软件开发需要多少钱
易享极合科技互联网趋势
服务器x灯
中国期刊数据库有几个
软件开发需要自学什么
网络安全服务提供
联想服务器ts250机盖
北京程序软件开发正规平台
计算机网络技术创业能力目标
怎样用笔记本连接服务器的管理口