C++怎么使用std::weak_ptr打破share_ptrs造成的循环
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"C++怎么使用std::weak_ptr打破share_ptrs造成的循环"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
网络安全专题学习会材料
数据库系统三级模式的优点
路由器 tftp服务器
丽水分布式服务器方案
机房服务器偶尔会跳闸怎么回事
微信数据库损坏修复一直为0
河北赵县网络安全宣传
确保无线网络安全
二手服务器批发
moxa串口服务器说明书
中国网络安全与
5e匹配选择服务器
vf环境用于编辑数据库
地图软件开发公司
网络安全的宣传画设计
合肥软件开发培训哪家学校好
软件开发工程师业绩评优申报
pgsql数据库靠谱吗
怎么把电脑当作文件服务器
网络盗窃罪触犯网络安全法吗
vid数据库
专注森林换服务器
光传输网络技术恢复
rad软件开发模式
部落冲突与服务器中断连接
岳阳软件开发培训机构
在数据库中的数据共享指的是什么
软件开发最重要的环节
学java好还是网络安全好
网络安全的ip过滤器