最近在研究右值引用的时候碰到这个问题,还没有解决,将问题贴在这里,待更新:
const int* printAddress(const int & v)
{
cout << v << endl;
cout << reinterpret_cast<const void*>(&v) << endl;
return (&v);
}
int getInt(int x)
{
printAddress(x);
return x;
}
int &&getRvalueInt(int x)
{
printAddress(x);
return std::move(x);
}
const int &getLvalueInt(int x)
{
printAddress(x);
return x;
}
int main()
{
int *x = new int;
*x = 11;
int &&temp = getRvalueInt(*x);
cout << endl;
temp++;
cout << temp << endl;
cout << temp << endl;
cout << endl;
printAddress(temp);
}
注释掉mai