【发布时间】:2012-10-07 23:07:43
【问题描述】:
我对标准中的以下段落(ISO/IEC 14882:2011(E) 的§3.9/4)很感兴趣:
T类型对象的对象表示是T类型对象占用的 N 个unsigned char对象的序列,其中 N 等于sizeof(T)。对象的值表示是一组保存T类型值的位。对于普通可复制类型,值表示是对象表示中的一组位,它们确定 value,它是实现定义的一组值的一个离散元素。42
我了解对象表示和值表示是不同的,以允许某些对象表示不参与对象的值(例如,填充)。不过,我不太明白可复制的类型。非平凡可复制类型没有值吗?非平凡可复制类型的部分值表示是否可以存在于其对象表示之外?
注释 42 解释:
意图是 C++ 的内存模型与 ISO/IEC 9899 编程语言 C 的内存模型兼容。
我仍然不明白为什么前面的语句专门针对可复制的类型。这有什么意义?
【问题讨论】:
标签: c++ object memory-model