如题, 这句话来自于c++ primer 5th 中文版 612页. 16.2.6 从一个左值static_cast到一个右值引用是允许的 小节下的第二段. 对应英文版692页
int&& rv = 5;
int lv = std::move(rv);
截断左值是什么意思, 我只知道将派生类对象赋值给基类非引用类型的左值会发生截断, 这里是指这个意思吗, 书中指向的469页的StrVec::reallocate的例子我没看明白哪里截断了, 求指点OTZ.
如题, 这句话来自于c++ primer 5th 中文版 612页. 16.2.6 从一个左值static_cast到一个右值引用是允许的 小节下的第二段. 对应英文版692页
int&& rv = 5;
int lv = std::move(rv);
截断左值是什么意思, 我只知道将派生类对象赋值给基类非引用类型的左值会发生截断, 这里是指这个意思吗, 书中指向的469页的StrVec::reallocate的例子我没看明白哪里截断了, 求指点OTZ.
我似乎明白了. 所谓的右值引用绑定到一个左值实际是这样式的
MyClass m;
MyClass&& rv = std::move(m);
//或者
MyClass&& rv = static_cast<MyClass&&>(m);
而截断就是左值变量对应的内存中的值不再由左值变量所属.
如有不对, 请纠正