A type with packed
representation hint has a field with align
representation hint.
Erroneous code example:
#[repr(align(16))]
struct Aligned(i32);
#[repr(packed)] // error!
struct Packed(Aligned);
RunJust like you cannot have both align
and packed
representation hints on a
same type, a packed
type cannot contain another type with the align
representation hint. However, you can do the opposite:
#[repr(packed)]
struct Packed(i32);
#[repr(align(16))] // ok!
struct Aligned(Packed);
Run