首页 > 解决方案 > 这个表达式是左值还是右值?

问题描述

看这个表达式:

T t;    
T& ref = t;

ref表达式是一个或lvalue一个rvalue我相信这是rvalue因为ref没有“指定函数或对象”

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

[开放标准草案 n3092]

根据cppreference,引用不是对象。

“以下实体不是对象:值、引用 [...]”

我很怀疑,因为ref=.

标签: c++c++11move-semanticsrvalue

解决方案


我很怀疑,因为 ref 在 = 的左侧。

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

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

它指定相同的对象t


推荐阅读