Для любого типа объекта T
всегда всегда имеет место sizeof(T)
не менее alignof(T)
?
Интуитивно это кажется так, поскольку даже когда вы настраиваете выравнивание объектов типа:
struct small {
char c;
};
выше того, что обычно было бы, их "размер" также корректируется вверх, так что связь между объектами в массиве имеет смысл при сохранении выравнивания (по крайней мере, в . Например:
struct alignas(16) small16 {
char c;
};
Имеет размер и выравнивание 16.