栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是rvalue,lvalue,xvalue,glvalue和prvalue?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是rvalue,lvalue,xvalue,glvalue和prvalue?

我猜这个文档可能只是一个简短的介绍:n3055

整个屠杀始于移动语义。一旦我们有了可以移动且不能复制的表达式,突然容易掌握的规则就要求在可以移动的表达式之间以及在哪个方向上进行区分。

根据我对草案的猜测,r / l值的区别保持不变,只是在移动事物变得混乱的情况下。

他们需要吗?如果我们希望放弃这些新功能,可能不会。但是为了更好的优化,我们可能应该接受它们。

引用n3055:

  • 一个左值(所谓的,历史上,因为左值可以出现在赋值表达式的左侧)表示一函数或一个对象。 [示例:如果E是指针类型的表达式,则*E 是指向所指向的对象或函数的左值表达式E 。又例如,调用返回类型为左值引用的函数的结果为左值。]
  • 一个x值(一个“到期”值)也指一个对象,通常接近其寿命的末尾(使得其资源可以被移动,例如)。xvalue是某些包含rvalue引用的表达式的结果。 [示例:调用返回类型为rvalue引用的函数的结果为xvalue。
  • 甲glvalue (“广义”左值)是左值 或x值。
  • 一个右值(在历史上,因为右值可能出现在赋值表达式的右侧,所以被称为历史值)是一个x值,其临时对象或子对象或与对象不相关的值。
  • 甲 prvalue(“纯”右值)是一个rvalue这不是一个x值。 [示例:调用返回类型不是引用的函数的结果是prvalue]
    所讨论的文档对该问题提供了很好的参考,因为它显示了由于引入了新术语而导致的标准的确切变化。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号