Ulrich Lauther <[EMAIL PROTECTED]> writes: > inline bool almost_equal(float a, float b, int maxUlps = 16) { > if (a == b) return true; > int intDiff = abs(*(reinterpret_cast<int*>(&a)) - > *(reinterpret_cast<int*>(&b))); > return intDiff <= maxUlps; > } > > I get the warning: warning: dereferencing type-punned pointer will > break strict-aliasing rules
Seems a mild punishment for such an atrocity. > How can I avoid this? (Using a union would imply unneeded copying af > a and b). And undefined behavior again. What about the straightforward return fabs(a-b)<maxUlps; ? _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus