????????????????Σ??????????????????????????????????????á??????????????????????????????????δ????????????????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(???????)??????Щ?????????????????д??