type: If integral or floating point promotion
can be applied to an rvalue of type T,
then applies integral and floating point promotions to T
and keeps cv-qualifiers of T,
otherwise leaves T unchanged.
See also integral_promotion
and floating_point_promotion.