An alignof expression yields the alignment requirement
of its operand type. The operand shall be a type-id
representing a complete object type, or an array thereof, or a reference
to one of those types.
The result is an integral constant of type
std::size_t.
When alignof is applied to a reference type, the result
is the alignment of the referenced type. When alignof
is applied to an array type, the result is the alignment of the
element type.