After going through various posts concerning this topic, it seems that things like floating point division by zero behavior isn't universally agreed upon when is_iec559
is true, unlike an analogous situation in C, where there's Annex F which describes what floating point operations do. It's been many years since this was discussed, so I thought something might have changed, so I'm asking:
Assuming is_iec559
is true in an implementation, are there any implications about about the basic +-*/
operations when it comes to otherwise undefined behavior in the c++ standard, e.g. division by zero returning infinity? Or does is_iec559
only guarantee the data storage format? Does it even guarantee anything?
More practically, are there any actual major implementations where this is not the case (i.e. is_iec559
can be true, and yet +-*/
do not conform to the IEC559 standard) under certain optimization flags etc.?