These traits are all value traits, which is to say the
traits classes all inherit from integral_constant,
and are used to access some numerical property of a type. Often this is a
simple true or false Boolean value, but in a few cases may be some other
integer value (for example when dealing with type alignments, or array bounds:
see alignment_of,
rank
and extent).