prvalue的结果

时间:2018-12-24 04:06:05

标签: c++ c++17

[basic.lval]/5状态:

  

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

“存储到其上下文中” 是什么意思?那是我不了解的那一部分。

1 个答案:

答案 0 :(得分:3)

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

  

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

C ++ 17中的变化下的

prvalue本身不是值(保证复制省略),而是类似于“指令”的对象(命名或临时)延迟初始化。初始化被延迟得尽可能晚,这就是“删除”副本的方式(但是我离题了)。单词“ ”存储在其上下文中表示结果是那些指令在其各自上下文中初始化这些对象所产生的结果。