summaryrefslogtreecommitdiffhomepage
path: root/compat/limits.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-03-05 14:12:30 +0100
committerStanislaw Halik <sthalik@misaki.pl>2024-03-05 14:12:30 +0100
commit6813b819c92815fe04bf208e8b188277af641b6e (patch)
treee187af8b42468a8429d95ff8e2c4193a0fa64846 /compat/limits.cpp
parent6b7090ee5f0e1f154a8ae52d7e7119d4082892cb (diff)
add lightweight alternative to std:numeric_limits
Diffstat (limited to 'compat/limits.cpp')
-rw-r--r--compat/limits.cpp31
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