Kry*_*n S 12 c++ language-lawyer c++17
[C++ 17]
当评估prvalue表达式时,标准表示它会产生一个值.在5表达式是prvalue 的情况下,它计算值5.
5
但是,当你有一个prvalue时,主要是一个对象的初始化器,比如Foo{}.这个表达的价值是什么?结果是由prvalue到xvalue转换创建的临时对象吗?这带来了我关于价值与客体之间差异的更广泛问题.
Foo{}
Jan*_*ans 4
[介绍.对象]/1 : 当隐式更改联合的活动成员或创建临时对象时,通过定义、new 表达式创建对象。对象在其构造期间、整个生命周期以及销毁期间占用一个存储区域。
[介绍.对象]/1 :
当隐式更改联合的活动成员或创建临时对象时,通过定义、new 表达式创建对象。对象在其构造期间、整个生命周期以及销毁期间占用一个存储区域。
无论纯右值是否具有类似的类类型Foo{},如文字一样5,都被视为一个值,然后该值将在确实必要时用于初始化对象,此时该值被具体化为对象。
[类.临时]/2: 临时对象的具体化通常会尽可能延迟,以避免创建不必要的临时对象。
[类.临时]/2:
临时对象的具体化通常会尽可能延迟,以避免创建不必要的临时对象。
在同一部分下,您将找到一个描述临时对象何时具体化的列表。
归档时间:
6 年,8 月 前
查看次数:
585 次
最近记录: