When I try to implement Bruce Dawson's method for comparing two floats like
this:

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

How can I avoid this? (Using a union would imply unneeded copying af a and
b).


-- 
        -lauther

[nosave]
----------------------------------------------------------------------------
Ulrich Lauther          ph: +49 89 636 48834 fx: ... 636 42284
Siemens CT SE 6         Internet: [EMAIL PROTECTED]
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to