diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2024-03-05 14:12:30 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-03-05 14:12:30 +0100 |
commit | 6813b819c92815fe04bf208e8b188277af641b6e (patch) | |
tree | e187af8b42468a8429d95ff8e2c4193a0fa64846 /compat/limits.cpp | |
parent | 6b7090ee5f0e1f154a8ae52d7e7119d4082892cb (diff) |
add lightweight alternative to std:numeric_limits
Diffstat (limited to 'compat/limits.cpp')
-rw-r--r-- | compat/limits.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/compat/limits.cpp b/compat/limits.cpp new file mode 100644 index 00000000..9a1c6314 --- /dev/null +++ b/compat/limits.cpp @@ -0,0 +1,31 @@ +#include "limits.hpp" +#include <climits> +#include <cfloat> + +namespace floormat { + +namespace { + +static_assert(limits<int32_t>::min == -2147483648); +static_assert(limits<int32_t>::max == 2147483647); +static_assert(limits<float>::max == (1 << FLT_MANT_DIG) && limits<float>::min == (-1 << FLT_MANT_DIG)); +static_assert(limits<double>::max == (1LL << DBL_MANT_DIG) && limits<double>::min == (-1LL << DBL_MANT_DIG)); +static_assert(limits<uint64_t>::min == 0 && limits<uint64_t>::max == (uint64_t)-1); + +static_assert(limits<int8_t >::max == INT8_MAX); +static_assert(limits<int16_t>::max == INT16_MAX); +static_assert(limits<int32_t>::max == INT32_MAX); +static_assert(limits<int64_t>::max == INT64_MAX); +static_assert(limits<uint8_t >::max == UINT8_MAX); +static_assert(limits<uint16_t>::max == UINT16_MAX); +static_assert(limits<uint32_t>::max == UINT32_MAX); +static_assert(limits<uint64_t>::max == UINT64_MAX); +static_assert(limits<float>::max == 16777216.f); +static_assert(limits<float>::min == -16777216.f); +static_assert(limits<double>::max == 9007199254740992.); +static_assert(limits<double>::min == -9007199254740992.); + +} // namespace + + +} // namespace floormat |