相关疑难解决方法(0)

什么是"与对象无关的值"?

C++ 11和C++ 14标准(分别是工作草案)在§3.10.1中说:

prvalue("纯"rvalue)是一个不是xvalue的rvalue.[示例:调用返回类型不是引用的函数的结果是prvalue.诸如12,7.3e5或true之类的文字的值也是prvalue. - 末端的例子]

rvalue(历史上所谓的,因为rvalues可能出现在赋值表达式的右侧)是xvalue,临时对象(12.2)或其子对象,或者是与对象无关的值.

这引出了一个问题:表达式如何成为"与对象无关的值"?

我的印象是,表达式的目的是返回对象或void(我不希望它也是一个值).

这些表达式有一些简单而常见的例子吗?

编辑1

要进一步复杂化,请考虑以下事项:

int const& x = 3;
int&& y = 4;
Run Code Online (Sandbox Code Playgroud)

在§8.3.2.5的上下文中,其中包含最有趣的片段:

[...]引用应初始化以引用有效的对象或功能[...]

§8.5.3.1强化了这一点:

声明为T&或T &&的变量,即"对类型T的引用"(8.3.2),应由类型为T的对象或函数或可转换为T的对象初始化. [...]

c++ language-lawyer c++11 c++14

11
推荐指数
2
解决办法
391
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

language-lawyer ×1