Handle isnan at a more central place.
Do not distribute architecture specific code across a lot of places.
This commit is contained in:
parent
fcd1733787
commit
7bcf02a0b4
@ -232,6 +232,11 @@ check_cxx_source_compiles(
|
||||
void f() { isnan(0.0);} "
|
||||
HAVE_ISNAN)
|
||||
|
||||
check_cxx_source_compiles(
|
||||
"#include <cmath>
|
||||
void f() { std::isnan(0.0);} "
|
||||
HAVE_STD_ISNAN)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(WARNING_FLAGS_CXX "-Wall")
|
||||
set(WARNING_FLAGS_C "-Wall")
|
||||
|
@ -20,10 +20,6 @@
|
||||
|
||||
#include <simgear/constants.h>
|
||||
|
||||
#ifndef _MSC_VER
|
||||
using std::isnan;
|
||||
#endif
|
||||
|
||||
// #define SG_GEOD_NATIVE_DEGREE
|
||||
|
||||
/// Class representing a geodetic location
|
||||
@ -356,7 +352,10 @@ inline
|
||||
bool
|
||||
SGGeod::isValid() const
|
||||
{
|
||||
if (isnan(_lon) || isnan(_lat)) return false;
|
||||
if (SGMiscd::isNaN(_lon))
|
||||
return false;
|
||||
if (SGMiscd::isNaN(_lat))
|
||||
return false;
|
||||
#ifdef SG_GEOD_NATIVE_DEGREE
|
||||
return (_lon >= -180.0) && (_lon <= 180.0) &&
|
||||
(_lat >= -90.0) && (_lat <= 90.0);
|
||||
|
@ -92,7 +92,6 @@ public:
|
||||
static S lerp(const S& val0, const S& val1, const T& t)
|
||||
{ return val0*(T(1) - t) + val1*t; }
|
||||
|
||||
#ifndef NDEBUG
|
||||
/// Returns true if v is a NaN value
|
||||
/// Use with care: allways code that you do not need to use that!
|
||||
static bool isNaN(const T& v)
|
||||
@ -109,7 +108,6 @@ public:
|
||||
return !(v == v);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -10,6 +10,7 @@
|
||||
#cmakedefine HAVE_RINT
|
||||
#cmakedefine HAVE_TIMEGM
|
||||
#cmakedefine HAVE_ISNAN
|
||||
#cmakedefine HAVE_STD_ISNAN
|
||||
#cmakedefine HAVE_WINDOWS_H
|
||||
#cmakedefine HAVE_MKDTEMP
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user