#include #include struct Record { char tag; int value; }; struct alignas(double) AlignedTag { char tag; }; int main() { static_assert(alignof(Record) >= alignof(int), "member alignment"); static_assert(sizeof(Record) % alignof(Record) == 0, "array stride"); static_assert(alignof(AlignedTag) >= alignof(double), "requested alignment"); Record items[2] = {{'a', 10}, {'b', 20}}; assert(items[1].value == 20); std::cout << items[0].tag << ' ' << items[1].value << '\n'; }