From cf006d34e0301e80f8eed5a6bf4144e5bc34c090 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Tue, 27 Jun 2006 21:12:06 +0000 Subject: [PATCH] special treatment for VC++ --- Number_types/include/CGAL/double.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Number_types/include/CGAL/double.h b/Number_types/include/CGAL/double.h index edf7a78fea8..743839ec491 100644 --- a/Number_types/include/CGAL/double.h +++ b/Number_types/include/CGAL/double.h @@ -27,6 +27,12 @@ #include #include #include +#include + +#ifdef _MSC_VER +#include +#endif + #ifdef CGAL_CFG_IEEE_754_BUG # include #endif @@ -145,10 +151,19 @@ is_valid( const double& dble) #else +#ifdef _MSC_VER + +inline +bool +is_valid(double d) +{ return ! _isnan(d); } +#else + inline bool is_valid(double d) { return (d == d); } +#endif #ifdef CGAL_CFG_NUMERIC_LIMITS_BUG @@ -162,8 +177,9 @@ is_finite(double d) inline bool is_finite(double d) -{ return d != std::numeric_limits::infinity()) - && (-d != std::numeric_limits::infinity()); } +{ return (d != std::numeric_limits::infinity()) + && (-d != std::numeric_limits::infinity()) + && is_valid(d); } #endif