Tam olarak eşdeğer değiller. Her iki değişken Sol taraf olduklarını haklısın ama forma
T a = b;
türlerinin çoğu, başlangıç noktaları için geçici T
nesnesi oluşturur ve daha sonra bu geçici nesneden a
oluşturur. Bu geçici nesne seçilebilir, ancak yine de uygun kurucuların kullanılabilir olmasını gerektirir. Öte yandan
T &&a = b;
,
b
doğrudan
a
bağlar, ancak bir rvalue olduğu
b
gerektirir. Yani:
int a = 3;
// int&&b = a; // error: && cannot bind to lvalues
int b = a; // okay
struct S { S(const S &) = delete; };
S f();
// S s = f(); // error: no copy or move constructor available
S&&s = f(); // okay
Ve daha basitçe, decltype
da referanslar için farklı sonuçlar verecektir.
Bu [soru] 'u okudunuz mu (http://stackoverflow.com/questions/10228264/use-of-rvalue-reference-and-auto)? Bu 'auto' ile ilgili, ama cevaplar, sorularınızı açıklığa kavuşturabilir. –
http://www.codesynthesis.com/~boris/blog/2008/11/24/rvalue-reference-basics/ –