[basic.lval]/5声明:
prvalue的结果是表达式存储到其上下文中的值。其结果为值V的prvalue有时被称为有值或命名值V。prvalue的结果对象是由prvalue初始化的对象;用于计算内置运算符的操作数或具有cv类型的值的未丢弃的prvalue没有结果对象.
“在上下文中存储”意味着什么?这是我不明白的部分。
发布于 2018-12-24 06:19:55
首先,[basic.lval]/1.2提到了这些上下文
prvalue是一个表达式,其计算值初始化对象或位字段,或计算操作符的操作数的值,如其出现的上下文所指定的那样。
C++17中更改下的prvalue本身不是值(保证复制省略),而是类似于对象延迟初始化的“指令”(无论是命名的还是临时的)。初始化被延迟到尽可能晚的时间,这就是拷贝被“删除”的方式(但是我偏离了)。“存储到上下文中”一词是指这些指令在各自的上下文中为初始化这些对象所产生的结果。
https://stackoverflow.com/questions/53909077
复制相似问题