c++11:左值、右值


一個最為典型的判別方法就是,在賦值表達式中,出現在等號左邊的就是“左值”,而在等號右邊的,則稱為“右值”。

還有一個說法,就是可以取地址的、有名字的就是左傳,反之,不能取地址的、沒有名字的就是右值。

右值又分將亡值(xvalue),純右值。

 

用右值引用變量聲明,就會少一次對象的析構及一次對象的構造。避免無謂的復制,提高程序性能。

 

引用類型本身自己並不擁有所綁定對象的內存,只是該對象的一個別名。左值引用是具名變量值的別名,而右值引用則是不具名(匿名)變量的別名。

 

R-value能綁定到L-value reference?

不能,但可以綁定到常量左值引用上。

const A& x = 1; //compile
x = 2;         //error!
A&& xxx = 1; //compile
A& xx  = 1; //does not compile.

 

《深入理解c++11新特性》3.3.3

Binding rvalue to lvalue reference


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM