浮点类型转换产生的结果无法在相应的空间中表示
C++-Undefined-Behavior-25
示例:
double d = FLT_MAX;
d = d * 10;
float f = d; // Non-defined behavior
例中 d 的值超过了 float 的取值范围,将 d 的值转为 float 会导致未定义的行为。
依据
ISO/IEC 14882:2003 4.8(1)-undefined
ISO/IEC 14882:2011 4.8(1)-undefined