Change-Id: I79b50e786f46c9a15963f09158c18871c95fe093
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
#if COMPILER(MSVC)
+#if _MSC_VER < 1800
// We must not do 'num + 0.5' or 'num - 0.5' because they can cause precision loss.
static double round(double num)
{
return integer - num > 0.5f ? integer - 1.0f : integer;
return integer - num >= 0.5f ? integer - 1.0f : integer;
}
+#endif
inline long long llround(double num) { return static_cast<long long>(round(num)); }
inline long long llroundf(float num) { return static_cast<long long>(roundf(num)); }
inline long lround(double num) { return static_cast<long>(round(num)); }
inline bool isinf(double d) { return !_finite(d) && !_isnan(d); }
inline bool isnan(double d) { return !!_isnan(d); }
inline bool isfinite(double d) { return _finite(d); }
+#if _MSC_VER < 1800
inline bool signbit(double d) { return _copysign(1.0, d) < 0; }
+#endif
} // namespace std