c++Rvalue引用說明
阿新 • • 發佈:2017-10-09
take 兩個 can family error ror 地址 至少 ann
1.介紹
Rvalue引用至少結決了兩個問題
1.實現移動語義
2.完美轉發
rvalue lvalue沒有明確的定義,大致定義如下:
lvalue:可以取地址
rvalue:不可取地址
// lvalues: // int i = 42; i = 43; // ok, i is an lvalue int* p = &i; // ok, i is an lvalue int& foo(); foo() = 42; // ok, foo() is an lvalue int* p1 = &foo(); // ok, foo() is an lvalue // rvalues: // int foobar(); int j = 0; j = foobar(); // ok, foobar() is an rvalue int* p2 = &foobar(); // error, cannot take the address of an rvalue j = 42; // ok, 42 is an rvalue
2.移動語義
c++Rvalue引用說明