weixin_43866023 2023-03-21 22:39 采纳率: 0%
浏览 21
已结题

对于操作右值引用的代码来说, 将一个右值引用绑定到一个左值的特性允许它们截断左值. 这句话如何理解?

如题, 这句话来自于c++ primer 5th 中文版 612页. 16.2.6 从一个左值static_cast到一个右值引用是允许的 小节下的第二段. 对应英文版692页

int&& rv = 5;
int lv = std::move(rv);

截断左值是什么意思, 我只知道将派生类对象赋值给基类非引用类型的左值会发生截断, 这里是指这个意思吗, 书中指向的469页的StrVec::reallocate的例子我没看明白哪里截断了, 求指点OTZ.

  • 写回答

1条回答 默认 最新

  • weixin_43866023 2023-03-23 21:40
    关注

    我似乎明白了. 所谓的右值引用绑定到一个左值实际是这样式的

    MyClass m;
    MyClass&& rv = std::move(m);
    //或者
    MyClass&& rv = static_cast<MyClass&&>(m);
    

    而截断就是左值变量对应的内存中的值不再由左值变量所属.
    如有不对, 请纠正

    评论

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 修改了问题 3月23日
  • 创建了问题 3月21日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上