C++的unique_ptr::release

释放给调用方返回的存储指针的所有权,并将存储的指针值设置为nullptr。

使用 release接管unique_ptr存储的原始指针的所有权。 调用方负责返回的指针的删除。 unique-ptr设置为空的默认构造状态。 在调用到release后,您可以将兼容类型的另一个指针分配到unique_ptr。

实例:

// stl_release_unique.cpp
// Compile by using: cl /W4 /EHsc stl_release_unique.cpp
#include <iostream>
#include <memory>struct Sample {int content_;Sample(int content) : content_(content) {std::cout << "Constructing Sample(" << content_ << ")" << std::endl;}~Sample() {std::cout << "Deleting Sample(" << content_ << ")" << std::endl;}
};void ReleaseUniquePointer() {// Use make_unique function when possible.  auto up1 = std::make_unique<Sample>(3);auto up2 = std::make_unique<Sample>(42);// Take over ownership from the unique_ptr up2 by using releaseauto ptr = up2.release();if (up2) {// This statement does not execute, because up2 is empty.std::cout << "up2 is not empty." << std::endl;}// We are now responsible for deletion of ptr.delete ptr;// up1 deletes its stored pointer when it goes out of scope.   
}int main() {ReleaseUniquePointer();
}

运行结果:

Constructing Sample(3)
Constructing Sample(42)
Deleting Sample(42)
Deleting Sample(3)

注意一点:

release后被接管的指针ptr,需要自己释放;而原先的up1离开了函数自动释放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSL证书申请需要多久?

SSL证书作为一种重要的网络安全工具&#xff0c;能够确保网站数据传输的安全&#xff0c;保护用户隐私和企业数据不受侵害。本文将详细介绍SSL证书的申请流程以及所需时间&#xff0c;帮助用户更好地规划和实施网络安全策略。 SSL证书&#xff0c;也称为TLS证书或HTTPS证书&am…

rest_asyncio 简化和管理异步python编程中的 REST API 调用

简介 rest_asyncio 是一个 Python 库,用于简化和管理异步编程中的 REST API 调用。它结合了 aiohttp 和 asyncio,提供了一种高效的方式来处理网络请求和响应,特别是在需要大量并发请求的场景下,例如爬虫、批量数据获取或实时数据处理。 以下是 rest_asyncio 的主要功能和…

富格林:领会正规阻挠欺诈技巧

富格林悉知&#xff0c;在当今经济不稳定的环境下&#xff0c;投资者们越来越倾向于将资金投入到相对安全和稳定的资产中&#xff0c;而黄金往往是他们的首选之一。但现货黄金市场相对复杂&#xff0c;因此要想在这个市场中立足脚跟就得领会正规阻挠欺诈的技巧。以下富格林为大…

如何优化工时表管理,提升团队效率?

时间就是金钱&#xff0c;对于企业来说&#xff0c;有效的工时表管理可以让一切变得不同。 本文将介绍控制工时表并将业务推向新高度的策略和工具。从多级审批工作流程到利用技术&#xff0c;了解如何克服常见挑战&#xff0c;收获简化工时管理流程的回报。 工时表管理,工时表…

Ardupilot开源飞控之AP_Follow

Ardupilot开源飞控之AP_Follow 1. 源由2. 定义2.1 ModeFollow类2.1.1 ModeFollow::update2.1.2 ModeFollow::_enter2.1.3 ModeFollow::_exit 2.2 AP_Follow类2.2.1 AP_Follow::handle_msg2.2.2 AP_Follow::get_target_location_and_velocity2.2.3 AP_Follow::get_velocity_ned …

getContentView(mBinding.getRoot()); 会导致内存泄露吗?里面有SurfaceView ViewBinding

在上述代码中&#xff0c;ActivityTestingBinding 是一个 Data Binding 库生成的类&#xff0c;用于绑定 XML 布局到 Activity 中。inflate(getLayoutInflater()) 用于将布局文件解析并转换为对应的视图层次结构。然后 getWindow().setFlags() 设置窗口属性&#xff0c;保持屏幕…

小型海外仓如何选择第三方海外仓系统:多看多对比,性价比优先

在现在的海外仓市场中&#xff0c;中小型海外仓&#xff0c;家庭海外仓的占比还是非常大的。这类海外仓的一个共同点就是资金有限&#xff0c;管理能力比较弱&#xff0c;很难实现规模效应。 对于这类海外仓来说&#xff0c;选择一套合适的第三方海外仓系统&#xff0c;对提升…

好用的国产大文件传输软件有哪些,快来看看吧

在这个数字化飞速发展的时代&#xff0c;我们每天都在与各种文件打交道&#xff0c;从简单的文档到庞大的视频素材&#xff0c;文件的体积越来越大&#xff0c;传统的文件传输方式逐渐显得力不从心。面对这个挑战&#xff0c;大文件传输软件应运而生&#xff0c;它们不仅解决了…

note-网络是怎样连接的4 接入网和网络运营商

助记提要 网络包从用户传输到互联网的过程信号的调制方式ADSL使用多个频率的合成波传输信号分离器的作用电话线的特点光纤的构造光纤的原理单模光纤和多模光纤光纤接入网的两种接入方式PPP拨号上网过程ADSL和FTTH使用PPPoE的方式PPPoE的规则隧道其他接入认证方式 PPPoA和DHCP网…

基于大数据的高校生源可视化分析系统

基于大数据的高校生源可视化分析系统 “A Visual Analysis System for Higher Education Student Enrollment based on Big Data” 完整下载链接:基于大数据的高校生源可视化分析系统 文章目录 基于大数据的高校生源可视化分析系统摘要第一章 引言1.1 研究背景1.2 研究目的1.…

adam优化器计算过程(tensorflow)

一、adam原理 原理 应用 优点 缺点 二、手动实现 一步一步计算 三、使用tensorflow api实现 api使用 四、一个具体的深度学习的例子

随后记: uniapp uview u-dropdown 下拉菜单固定高度滑动不生效

使用u-dropdown 下拉组件 按照uview官网讲解使用 配置根本不生效 scroll-y"true" style"height: 200rpx;" 但是在下拉的时候&#xff0c;不能上下滑动 &#xff0c;原因是自带的遮罩层挡住了 解决办法&#xff1a;在下拉菜单打开和关闭的时候&#xff0c…

linux 目录 /usr/lib和 /usr/lib64区别

在 Linux 系统中&#xff0c;/usr/lib 和 /usr/lib64 目录通常用于存储库文件&#xff08;libraries&#xff09;&#xff0c;这些库文件是程序运行时所需的共享代码和数据。这两个目录之间的主要区别在于它们所包含的库文件的架构&#xff08;architecture&#xff09;和用途。…

Python函数式编程进阶:用函数实现设计模式

文章目录 函数式编程进阶&#xff1a;用函数实现设计模式案例实现&#xff1a;构建“策略”模式使用函数实现”策略“模式享元 选择最佳策略&#xff1a;简单的方式 globals关键字 函数式编程进阶&#xff1a;用函数实现设计模式 案例实现&#xff1a;构建“策略”模式 策略模…

Java 18新特性:探索Java的未来

目录 1. 增强的模式匹配 2. JEP 411&#xff1a;String解构 3. JEP 395&#xff1a;Records增强 4. JEP 398&#xff1a;Deprecate警告增强 5. JEP 409&#xff1a;Sealed类和接口增强 6. API改进 6.1 集合API改进 6.2 流API改进 6.3 IO/NIO API改进 7. 性能优化 7.…

从0开始带你成为Kafka消息中间件高手---第三讲

从0开始带你成为Kafka消息中间件高手—第三讲 实际上来说&#xff0c;每次leader接收到一条消息&#xff0c;都会更新自己的LEO&#xff0c;也就是log end offset&#xff0c;把最后一位offset 1&#xff0c;这个大家都能理解吧&#xff1f;接着各个follower会从leader请求同…

k8s 中svc映射的外部端口是如何监听的,netstat命令为什么查不到?

在Kubernetes中&#xff0c;Service&#xff08;服务&#xff09;是一种抽象&#xff0c;用于将一组Pod&#xff08;容器&#xff09;公开为一个网络服务。Service可以通过ClusterIP&#xff08;集群内部IP&#xff09;、NodePort&#xff08;节点端口&#xff09;或LoadBalanc…

KDD 2024|基于隐空间因果推断的微服务系统根因定位

简介&#xff1a;本文介绍了由清华大学、南开大学、eBay、微软、中国科学院计算机网络信息中心等单位共同合作的论文《基于隐空间因果推断的受限可观测性场景的微服务系统根因定位》。该论文已被KDD 2024会议录用。 论文标题&#xff1a;Microservice Root Cause Analysis Wit…

10年老运营人吐血整理,给新媒体运营人的20条建议!沈阳新媒体运营培训

对于企业&#xff0c;在新媒体平台开设官方账号应该是已经成为标配。不仅是对企业新媒体运营需求量提高&#xff0c;新媒体人的薪资也是水涨船高。 另外值得注意的是&#xff0c;企业对资深新媒体运营人才尤为重视&#xff0c;这表现在他们不惜重金招聘高薪新媒体运营人才&…

Linux新增磁盘挂载分区

1. 查看磁盘分区名称 lsblk 可见&#xff0c;新增的分区为 sdb 2.格式化磁盘 mkfs.xfs -f /dev/sdb 3.挂在磁盘到 /ocean目录&#xff0c;挂在前先创建空目录 /ocean mkdir /oceanmount /dev/sdb /ocean 执行后&#xff0c;可用 df -h 查看分区是否成功 4.持久化磁盘分区&a…