If float does not adhere to ISO/IEC 60559
and cannot represent positive infinity,
a sufficiently large double value will be
outside the (finite) range of float.
void f(){double d = FLT_MAX;
d *=16;
float f =static_cast<float>(d); // undefined behavior} — end example]