mirror of
https://github.com/mpusz/mp-units.git
synced 2025-07-30 18:37:15 +02:00
fix: std::isnan
compilation fixed for freestanding and C++20
This commit is contained in:
@ -26,6 +26,9 @@
|
|||||||
import std;
|
import std;
|
||||||
#else
|
#else
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
#if MP_UNITS_HOSTED
|
||||||
|
#include <cmath>
|
||||||
|
#endif // MP_UNITS_HOSTED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@ -94,12 +97,16 @@ static_assert(std::numeric_limits<q_double>::infinity().numerical_value_in(mp_un
|
|||||||
static_assert(std::numeric_limits<q_int>::infinity().numerical_value_in(mp_units::si::metre) ==
|
static_assert(std::numeric_limits<q_int>::infinity().numerical_value_in(mp_units::si::metre) ==
|
||||||
std::numeric_limits<int>::infinity());
|
std::numeric_limits<int>::infinity());
|
||||||
|
|
||||||
|
#if MP_UNITS_HOSTED && (__cpp_lib_constexpr_cmath || MP_UNITS_COMP_GCC)
|
||||||
|
|
||||||
// quiet_NaN
|
// quiet_NaN
|
||||||
static_assert(std::isnan(std::numeric_limits<q_double>::quiet_NaN().numerical_value_in(mp_units::si::metre)));
|
static_assert(std::isnan(std::numeric_limits<q_double>::quiet_NaN().numerical_value_in(mp_units::si::metre)));
|
||||||
|
|
||||||
// signaling_NaN
|
// signaling_NaN
|
||||||
static_assert(std::isnan(std::numeric_limits<q_double>::signaling_NaN().numerical_value_in(mp_units::si::metre)));
|
static_assert(std::isnan(std::numeric_limits<q_double>::signaling_NaN().numerical_value_in(mp_units::si::metre)));
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// denorm_min
|
// denorm_min
|
||||||
static_assert(std::numeric_limits<q_double>::denorm_min().numerical_value_in(mp_units::si::metre) ==
|
static_assert(std::numeric_limits<q_double>::denorm_min().numerical_value_in(mp_units::si::metre) ==
|
||||||
std::numeric_limits<double>::denorm_min());
|
std::numeric_limits<double>::denorm_min());
|
||||||
@ -171,6 +178,8 @@ static_assert(std::numeric_limits<qp_double>::infinity().quantity_from_zero().nu
|
|||||||
static_assert(std::numeric_limits<qp_int>::infinity().quantity_from_zero().numerical_value_in(mp_units::si::metre) ==
|
static_assert(std::numeric_limits<qp_int>::infinity().quantity_from_zero().numerical_value_in(mp_units::si::metre) ==
|
||||||
std::numeric_limits<int>::infinity());
|
std::numeric_limits<int>::infinity());
|
||||||
|
|
||||||
|
#if MP_UNITS_HOSTED && (__cpp_lib_constexpr_cmath || MP_UNITS_COMP_GCC)
|
||||||
|
|
||||||
// quiet_NaN
|
// quiet_NaN
|
||||||
static_assert(
|
static_assert(
|
||||||
std::isnan(std::numeric_limits<qp_double>::quiet_NaN().quantity_from_zero().numerical_value_in(mp_units::si::metre)));
|
std::isnan(std::numeric_limits<qp_double>::quiet_NaN().quantity_from_zero().numerical_value_in(mp_units::si::metre)));
|
||||||
@ -179,6 +188,8 @@ static_assert(
|
|||||||
static_assert(std::isnan(
|
static_assert(std::isnan(
|
||||||
std::numeric_limits<qp_double>::signaling_NaN().quantity_from_zero().numerical_value_in(mp_units::si::metre)));
|
std::numeric_limits<qp_double>::signaling_NaN().quantity_from_zero().numerical_value_in(mp_units::si::metre)));
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// denorm_min
|
// denorm_min
|
||||||
static_assert(std::numeric_limits<qp_double>::denorm_min().quantity_from_zero().numerical_value_in(
|
static_assert(std::numeric_limits<qp_double>::denorm_min().quantity_from_zero().numerical_value_in(
|
||||||
mp_units::si::metre) == std::numeric_limits<double>::denorm_min());
|
mp_units::si::metre) == std::numeric_limits<double>::denorm_min());
|
||||||
|
Reference in New Issue
Block a user