Определение концепции представления объекта приведен в 3.9/4:Определение представления объекта FO и оператора SizeOf
[basic.types]
Объект представление объекта типа Т представляет собой последовательность из N неподписанных объектов char, занимаемых объектом типа T, где N равно
sizeof(T)
.
Но sizeof
оператора определяется следующим образом:
[expr.sizeof]
Оператор SizeOf дает число байтов в объекта представления своего операнда.
В частности:
В применении к классу, то результат будет число байт в объекте этого класса, включая любые дополнения, необходимые для размещения объектов этого типа в массиве
Я хотел бы считать, что определение, например:
struct A {
int a; //sizeof(a) is implementation defined
long b; //sizeof(b) is implementation defined
char c; //sizeof(c) is 1 by definition
// Padding, problbly equals to 3 butes
}
Как осуществляется sizeof(A)
? Мы просто вычислим сумму sizeof(a) + sizeof(b) + sizeof(c) + padding
.
Но в чем состоять required for placingobjects of that type in an array
?
Массивы должны быть смежными. Объекты должны быть правильно выровнены. –
@ T.C. Является ли представление объекта всех типов ожидаемым _narrow character types_ реализация, определенная из-за его размера? –
Да, они должны быть. –