Рассмотрим следующее struct
определение:
#define SIZE ... // it's a positive multiple of sizeof(Foo*)
struct Foo {
Foo* ptr;
char padding[SIZE - sizeof(Foo*)];
};
Учитывая, что SIZE
является положительным кратным размеру указателя (sizeof(Foo*)
), гарантируется ли стандартом sizeof(Foo) == SIZE
?
Если это практически не гарантируется, существуют ли какие-либо общие платформы, которые предоставляют контрпример (где равенство не выполняется)?
Да, я в курсе alignas
...