C 11新特性之右值引用

2021-10-07 09:19:50 字數 404 閱讀 7335

右值:只能出現在operator=右邊的 通常臨時物件(將亡值)、字面值常量(純右值)是右值

類的臨時物件是乙個右值,臨時變數一定被當成右值,因為臨時物件建立之後不會再被使用,所以直接把右值資料引用給別的變數,有時候乙個左值在後面不會被用到,那麼就可以使用move語義把左值轉成右值。

右值引用和左值引用都是屬於引用型別。無論是宣告乙個左值引用還是右值引用,都必須立即進行初始化。而其原因可以理解為是引用型別本身自己並不擁有所繫結物件的記憶體,只是該物件的乙個別名。左值引用是具名變數值的別名,而右值引用則是不具名(匿名)變數的別名

右值引用(&&)只能接受右值。

右值引用兩大作用:移動語義和完美**

c 11新特性之右值引用

c 11 增加了乙個新的型別,稱為右值引用 r value reference 標記為 t 在介紹右值引用型別之前先要了解什麼是左值和右值。左值是指表示式結束後依然存在的持久物件,右值是指表示式結束時就不再存在的臨時物件。乙個區分左值與右值的便捷方法是 看能不能對表示式取位址,如果能,則為左值,否則...

C 11新特性之右值引用

int i 10 右值引用 右值 int rr 42 int rr1 std move i const左值引用 右值 const int c 42 左值引用 左值 int lr rr 注意 右值引用也是變數,所以rr是左值。string a aaa string r std move a r rrr...

C 11之 右值引用

最近在看cocos2dx的源 發現了乙個模板類有乙個奇怪的語法 inline refptr refptr other 剛開始一陣犯暈,乙個型別ref和乙個似乎是形參的other與操作會得出乙個什麼?顯然這種理解是錯誤的。還有一種含義是右值引用,表示形參是乙個右值。左值 右值 int a 0 a是乙個...