属性值的结果

Result of a prvalue

本文关键字:结果 属性      更新时间:2023-10-16

[basic.lval]/5 表示:

prvalue 的结果是表达式存储到其上下文中的值。结果为值 V 的 prvalue 有时被称为具有或命名值 V。prvalue 的结果对象是由 prvalue 初始化的对象;用于计算内置运算符的操作数值或具有 CV void 类型的非丢弃 PrValue 没有结果对象...

"存储到其上下文中"是什么意思?这是我不明白的那一部分。

嗯,有一个 [basic.lval]/1.2 提到了这些上下文

prvalue 是一个表达式,其计算初始化一个对象或 位字段,或计算运算符的操作数的值,如 由它出现的上下文指定。

C++17 中更改下的 prvalue 本身不是值(保证复制省略),而是类似于延迟初始化对象(命名或临时)的"指令"。初始化尽可能晚地延迟,这就是"省略"副本的方式(但我跑题了)。短语"存储到其上下文中"意味着结果是这些指令在各自的上下文中为初始化这些对象而产生的结果。