C++11 std::shared_ptr的std::move()移动语义底层分析

std::shared_ptr的std::move()移动语义底层分析

执行std::move()之前:

在这里插入图片描述
在这里插入图片描述

执行std::move()之后:

在这里插入图片描述
在这里插入图片描述

结论:一个浅拷贝

sizeof(std::shared_ptr) = 8字节
pss1 : 0x0028fea8
pss2 : 0x0028fea0
(栈是逆增长的)
观察执行std::move前,pss1 : 0x0028fea8 开始的8个字节的值,
然后执行后 pss1 : 0x0028fea8开始的8个字节的值复制到 pss2 : 0x0028fea0 后,清零pss1 : 0x0028fea8 开始的8个字节的值。

过程:

std::move()的功能是将一个左值转换为右值,
所以执行std::stdred_ptr<> pss2(std::move(pss1))时,是调用了std::shared_ptr<>的移动构造函数(移动构造是需要一个右值),而该移动构造函数是一个浅拷贝的操作。

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

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

相关文章

一个使用numpy.ones()的矩阵| 使用Python的线性代数

Ones Matrix - When all the entries of a matrix are one, then it is called as ones matrix. It may be of any dimension (MxN). 一个矩阵 -当矩阵的所有条目均为1时&#xff0c;则称为一个矩阵。 它可以是任何尺寸( MxN )。 Properties: 特性&#xff1a; The determina…

python去掉字符串最外侧的引号_疯狂Python讲义第二章读书笔记

本章讲解变量和简单类型2.1 从注释讲起单行注释使用#&#xff0c;#后面的代码被注释掉不会运行&#xff0c;如&#xff1a;# print(123) 注释掉后123不会输出。多行注释使用""" """&#xff0c;三个双引号&#xff0c;双引号中的内容注释掉&…

Xpath[转]

Xpath[转] XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素&#xff0c;并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 因此&#xff0c;对 XPath 的理解是很多高级 XML 应用的基础。 …

【转】深入分析 ASP.NET Mvc 1.0 – 1. 深入MvcHandler

MvcHandler是一个mvc程序真正开始的地方&#xff0c;因为你可以直接看到并调试它的源码。 MvcHandler的主要代码如下:protected internal virtual void ProcessRequest(HttpContextBase httpContext) {AddVersionHeader(httpContext);// Get the controller typestring control…

C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析

右值引用保存临时变量&#xff08;函数返回值&#xff09;的问题 &#xff1a;临时变量是右值 1、普通变量接收函数返回值&#xff1a; 2、右值引用变量接收函数返回值&#xff1a; 3、用const int& 和右值引用是一样的效果&#xff0c;只是const int& 就不可以修改…

JavaScript中的位置协议属性

JavaScript | 位置协议属性 (JavaScript | Location protocol property) A protocol by definition simply implies a set or working rules that must be adhered to. A network protocol thus defines rules for communication between network devices. You must be familia…

axure源文件_Axure教程:实现网易云音乐有声播放效果

为了方便讲解&#xff0c;我们首先在桌面新建一个文件夹&#xff0c;命名为音乐。1、将自己想要演示播放的MP3音乐文件放在这个文件夹里面。2、给播放页添加一个中继器&#xff0c;随便命名&#xff0c;我给它命名为【音乐地址链接器】&#xff0c;用来链接播放本地音乐文件。并…

2012年终总结

工作&#xff1a; 原来的文章也写过&#xff0c;今年年初的时候&#xff0c;因为一些原因&#xff0c;成了另外一家公司的员工&#xff0c;但办公地点还是在原来的公司。 这是一家外包公司&#xff0c;技术实力当然是比较强的&#xff0c;不过自己对于编程方面的兴趣止不住的一…

PYTHON解析PE的模块

RT&#xff0c;从GOOGLE CODE上找的。。虽然拿PYTHON解析PE的意义不大还有点麻烦…… 示例代码&#xff1a; #coding:gbk import sys import pefile #from struct import * import structdef main():pe pefile.PE("ccalc.exe")pe.print_info()if __name__ "__…

ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作)

《ffplay的数据结构分析》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到SDL输出&#xff09;》 《ffplay分析 &#xff08;视频从Frame(解…

python3和python2 优势_python3和python2的区别

1.性能Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间&#xff0c;在字符串和整形操作上可以取得很好的优化结果。Py3.1性能比Py2.5慢15%&#xff0c;还有很大的提升空间。2.编码Py3.X源码文件默认使用utf-8编码&#xff0c;这就使得以下代码…

并发进程同步

P是荷兰语Proberen&#xff08;测试&#xff09;的首字母。为阻塞原语&#xff0c;负责把当前进程由运行状态转换为阻塞状态&#xff0c;直到另外一个进程唤醒它。也就是不好的一方面。 V是荷兰语Verhogen&#xff08;增加&#xff09;的首字母。为唤醒原语&#xff0c;负责把一…

寄存器和pin_16x2 LCD的PIN图和寄存器

寄存器和pinIn these years the LCD is finding widespread use. It has replaced the LEDs or other multi-segment LEDs.This is due to the following reasons: 近年来&#xff0c; LCD正在广泛使用。 它已替换LED或其他多段LED&#xff0c;原因如下&#xff1a; The decli…

【Java IO知识】读取中文乱码问题解决

读取文件主要是要设置读取的输入流如InputStreamReader时要设置读取的解码格式,要和文件本身的编码格式相同,这样读取出来的才不会乱码。 InputStreamReader reader new InputStreamInputReader(input, "编码格式"); ANSI是"gbk" 注:必须是在读取的时候就…

ffplay分析(视频解码线程的操作)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到SDL输出&#xff09;》 《ffplay分析 &#xff08;视频从Fram…

【转】.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间&#xff0c;完善《.NET深入学习笔记》系列&#xff08;基本都是.Net重要的知识点&#xff0c;我都做了详细的总结&#xff0c;是什么、为什么、和怎么实现&#xff09;。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

c语言数组-1_C数组-智能问题与解答

c语言数组-1C programming Arrays (One-D Array, Two-D Array) Aptitude Questions and Answers : In this section you will find C Aptitude Questions and Answers on One Dimensional (1D) and Two Dimensional (2D) array. C编程数组(一维数组&#xff0c;二维数组)能力问…

abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏

100万职场人都在看后台回复礼包领199元职场干货大家好&#xff0c;我是小可~今天跟大家分享一个提高Excel操作效率的小技巧自定义你的快速访问工具栏设置后的效果▼▼▼也就是把你最经常用到的两三个功能放到快速访问工具栏可以一眼就找到这些功能不需要靠快捷键或者功能选项卡…

用递归法求1²+2²+...+n²的值

思路分析: 谈到递归,我个人会联想到数学里面的通式。因为递归调用的函数的对应法则是相同的。例如这道题:f(x)=x。这个就是函数通式,只不过把每个求得的结果进行累加求和即可。用户输入5的时候,会出现f(5)=5,之后再进行x减一操作,执行f(4)=4,最后将每个进行累加即可。…

机器学习资料推荐

机器学习资料推荐 机器学习的资料 1:斯坦福大学视频(作为入门教程&#xff0c;网易有中文字幕&#xff0c;而且讲义也有翻译版本&#xff09;20集200左右讲义 2&#xff1a;机器学习 Tom M.Mitchell(虽然出版10多年&#xff0c;但是通俗易懂的内容&#xff0c;让读者对机器学习…