一個最為典型的判別方法就是,在賦值表達式中,出現在等號左邊的就是“左值”,而在等號右邊的,則稱為“右值”。
還有一個說法,就是可以取地址的、有名字的就是左傳,反之,不能取地址的、沒有名字的就是右值。
右值又分將亡值(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