]> git.mxchange.org Git - simgear.git/commitdiff
move all isnan() declarations from sample_group.cxx to compiler.h since it's too...
authorehofman <ehofman>
Mon, 26 Oct 2009 09:05:19 +0000 (09:05 +0000)
committerTim Moore <timoore@redhat.com>
Mon, 26 Oct 2009 17:49:57 +0000 (18:49 +0100)
simgear/compiler.h

index da0020cc77b34dbdb5f6e3180cf7afe51c861a1d..cfa91f86441df92aa7cdcc9bd3f61e81e1ddc3ac 100644 (file)
 //
 
 #ifdef __APPLE__
+#  ifdef __GNUC__
+#    if ( __GNUC__ >= 3 ) && ( __GNUC_MINOR__ >= 3 )
 inline int (isnan)(double r) { return !(r <= 0 || r >= 0); }
-#else
+#    else
+    // any C++ header file undefines isinf and isnan
+    // so this should be included before <iostream>
+    // the functions are STILL in libm (libSystem on mac os x)
+extern "C" int isnan (double);
+extern "C" int isinf (double);
+#    endif
+#  else
+inline int (isnan)(double r) { return !(r <= 0 || r >= 0); }
+#  endif
+#endif
+
+#if defined (__FreeBSD__)
+#  if __FreeBSD_version < 500000
+     extern "C" {
+       inline int isnan(double r) { return !(r <= 0 || r >= 0); }
+     }
+#  endif
+#endif
+
+#if defined (__CYGWIN__)
+#  include <ieeefp.h>          // isnan
+#endif
 
+#if defined(__MINGW32__)
+#  define isnan(x) _isnan(x)
 #endif