The behavior of a program that adds specializations for
any of the templates defined in this subclause is undefined,
unless explicitly permitted by the specification of the corresponding template.
A POD class is a class that is both a trivial class and a
standard-layout class, and has no non-static data members of type non-POD class
(or array thereof).
A POD type is a scalar type, a POD class, an array
of such a type, or a cv-qualified version of one of these types.
The member typedef type denotes a trivial standard-layout type
suitable for use as uninitialized storage for any object
whose size is at most Len and
whose alignment is a divisor of Align.
The member typedef type denotes a trivial standard-layout type
suitable for use as uninitialized storage for any object
whose type is listed in Types;
its size shall be at least Len.
The static member alignment_value
is an integral constant of type size_t
whose value is the strictest alignment of all types listed in Types.