#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__WATCOMC__)
#include <float.h>
#define wxFinite(x) _finite(x)
-#elif defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \
+#elif defined(__MINGW64__)
+ // add more compilers with C99 support here: using C99 isfinite() is
+ // preferable to using BSD-ish finite()
+ #define wxFinite(x) isfinite(x)
+#elif ( defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \
defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \
- defined(__HPUX__)||defined(__MWERKS__)
+ defined(__HPUX__)||defined(__MWERKS__) ) && ( !defined(wxOSX_USE_IPHONE) || wxOSX_USE_IPHONE == 0 )
+#ifdef __SOLARIS__
+#include <ieeefp.h>
+#endif
#define wxFinite(x) finite(x)
#else
#define wxFinite(x) ((x) == (x))
// shouldn't be used with doubles, but we get too many of them and
// removing these operators is probably not a good idea
//
- // Maybe we should alway compare doubles up to some "epsilon" precision
+ // Maybe we should always compare doubles up to some "epsilon" precision
#pragma warning(push)
// floating-point equality and inequality comparisons are unreliable