繁体   English   中英

这个表达式是左值还是左值?

[英]Is this expression an lvalue or an rvalue?

看看这个表达式:

T t;    
T& ref = t;

ref表达式是lvalue还是rvalue 我相信它是一个rvalue因为ref不会“指定一个函数或一个对象”

“左值(所谓的,历史上,因为左值可能出现在赋值表达式的左侧)指定一个函数或一个对象。”

[open-std draft n3092]

根据cppreference ,引用不是对象。

“以下实体不是对象:值,参考[...]”

我有点怀疑,因为ref位于=的左侧。

我有点怀疑,因为ref位于=的左侧。

ref是一个名称,因此是一个左值。

我相信它是一个右值,因为ref不会“指定一个函数或一个对象”

它指定与t相同的对象。

引用确实指定了一个函数或对象! 它的字面意思就像标准中的那样! [expr.type] / 1

如果表达式最初具有“对T的引用”类型([dcl.ref],[dcl.init.ref]),则在进行任何进一步分析之前将类型调整为T. 表达式指定由引用表示的对象或函数 ,[...]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM