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
英文地址,請注明出處:http://en.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操作效率的小技巧自定義你的快速訪問工具欄設置后的效果▼▼▼也就是把你最經常用到的兩三個功能放到快速訪問工具欄可以一眼就找到這些功能不需要靠快捷鍵或者功能選項卡…

用遞歸法求12+22+...+n2的值

思路分析: 談到遞歸,我個人會聯想到數學里面的通式。因為遞歸調用的函數的對應法則是相同的。例如這道題: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;讓讀者對機器學習…