Implement constexpr isfinite to avoid producing NaN

This commit is contained in:
Victor Zverovich committed 2022-05-11 08:43:22 -07:00
1 parent 358f5a7e50
commit ae963e444f
2 files changed
+9 -3

No files matched your search

+2
View File
@@ -89,6 +89,8 @@ template <typename Float> void check_isfinite() {
EXPECT_TRUE(isfinite(Float(fmt::detail::max_value<double>())));
// Use double because std::numeric_limits is broken for __float128.
using limits = std::numeric_limits<double>;
FMT_CONSTEXPR20 auto result = isfinite(Float(limits::infinity()));
EXPECT_FALSE(result);
EXPECT_FALSE(isfinite(Float(limits::infinity())));
EXPECT_FALSE(isfinite(Float(-limits::infinity())));
EXPECT_FALSE(isfinite(Float(limits::quiet_NaN())));