????????????????危??????????????????????????????????????谩??????????????????????????????????未????????????????lvalue???????(rvalue)?????????????????“???????????????????”??
?????????????????????????位??????????
#include <iostream>
using std::cout;
using std::endl;
int foo(int &a) {
return a;
}
int main() {
int a = 1;
cout << &a << endl;
int *p = &foo(a);
}
??????????foo??a)?????????????: "lvalue required as left operand of assignment".??????????&???????????????????????
????????????????foo(a)???????????????1???????????????????????????????????????????????????????????
????????????????????
????????????????????????味??????????娓�?????C++?????校???????????????????????undefined???????????????????????????娲�????????????????????????????????????????????C++?械?????娲�?懈???????
??????????????????小????C++?????????????????????????
????1. ????????????????????????
????2. ??????????new??malloc??????????
????3. ?????????????.data ??.bss
????????lvalue?????????????“????????????????????”??????????lvalue???????????????rvalue?????浠�???C++??????????????????????????????????????????????????????????????????????????
??????
???????????????????????????????????????????????????????????????????????
?????????????
?????????????????????????位???????????????????????????????????????????????????“?????”??????const?????????????????娲�??????????????
?????????
?????????????梅???????????????????????????????????????y???????????????????????????????????婕�?????????????????????????????
???????
????C++ 11????????????????????????????Rvalue Reference?????????????move semantics (???????)??Perfect Forwarding(???????)??????些?????????????????写??