c++ - 这个表达式是左值还是右值?
问题描述
看这个表达式:
T t;
T& ref = t;
ref
表达式是一个或lvalue
一个rvalue
?我相信这是rvalue
因为ref
没有“指定函数或对象”:
“左值(所谓的,历史上,因为左值可能出现在赋值表达式的左侧)指定一个函数或一个对象。”
[开放标准草案 n3092]
根据cppreference,引用不是对象。
“以下实体不是对象:值、引用 [...]”
我很怀疑,因为ref
在=
.
解决方案
我很怀疑,因为 ref 在 = 的左侧。
ref
是一个名称,因此是一个左值。
我相信它是一个右值,因为 ref 没有“指定一个函数或一个对象”
它指定相同的对象t
。
推荐阅读
- python - (Django) 编辑不是 ModelForm 的表单数据
- php - 公共属性的 json_encode() 行为
- reactjs - 根据 select option 中的选定项在 antd 表中显示数据
- javascript - 如何获取具有当前位置拼写的时区名称?
- r - ocr : 解开在行尾剪切的单词并保留段落
- python - 使用包含标签的 CSV 文件绘制图表
- javascript - 我想做一个文本转换器到 unicode 转换器。代码运行良好,但我坚持更改,因为 '\' 显示无效
- google-play - 我的应用因为成熟的 mopub 广告而被拒绝,这样的广告属于什么类型的 IAB 类别?
- reactjs - 使用反应的 SPA 中的动态标题
- python-3.x - 如何通过正则表达式获取特定单词附近的日期