Представление значений нетривиально копируемых типов
Я заинтригован следующим абзацем из стандарта (& # xA7; 3.9 / 4 изISO/IEC 14882:2011(E)):
The object representation of an object of type T
is the sequence of N unsigned char
objects taken up by the object of type T
, where N equals sizeof(T)
. The value representation of an object is the set of bits that hold the value of type T
. For trivially copyable types, the value representation is a set of bits in the object representation that determines a value, which is one discrete element of an implementation-defined set of values.42
Я понимаю чтоobject representation а такжеvalue representation различаются, чтобы позволить некоторому представлению объекта не принимать участие в значении объекта (например, заполнение). Я не совсем понимаю, что такое тривиально копируемые типы. Разве нетривиально копируемые типы не имеют значений? Может ли часть представления значения нетривиально копируемого типа существовать вне его представления объекта?
Примечание 42 объясняет:
The intent is that the memory model of C++ is compatible with that of ISO/IEC 9899 Programming Language C.
Я до сих пор не понимаю, почему предыдущее утверждение специально предназначено только для тривиально копируемых типов. Каково значение этого?