diff options
Diffstat (limited to 'core/floathacks.hh')
| -rw-r--r-- | core/floathacks.hh | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/core/floathacks.hh b/core/floathacks.hh index 0796b10..31915c8 100644 --- a/core/floathacks.hh +++ b/core/floathacks.hh @@ -10,10 +10,11 @@ static inline std::int32_t float_to_int32(const float value); static inline std::uint32_t float_to_uint32(const float value);
} // namespace floathacks
+static_assert(std::numeric_limits<float>::is_iec559, "Floathacks only works with IEEE 754 compliant floats");
+static_assert(sizeof(std::int32_t) == sizeof(float), "Floathacks requires 32-bit integers to match float size");
+
static inline float floathacks::int32_to_float(const std::int32_t value)
{
- static_assert(std::numeric_limits<float>::is_iec559);
- static_assert(sizeof(std::int32_t) == sizeof(float));
union {
std::int32_t src;
float dst;
@@ -24,8 +25,6 @@ static inline float floathacks::int32_to_float(const std::int32_t value) static inline float floathacks::uint32_to_float(const std::uint32_t value)
{
- static_assert(std::numeric_limits<float>::is_iec559);
- static_assert(sizeof(std::uint32_t) == sizeof(float));
union {
std::uint32_t src;
float dst;
@@ -36,8 +35,6 @@ static inline float floathacks::uint32_to_float(const std::uint32_t value) static inline std::int32_t floathacks::float_to_int32(const float value)
{
- static_assert(std::numeric_limits<float>::is_iec559);
- static_assert(sizeof(std::int32_t) == sizeof(float));
union {
float src;
std::int32_t dst;
@@ -48,8 +45,6 @@ static inline std::int32_t floathacks::float_to_int32(const float value) static inline std::uint32_t floathacks::float_to_uint32(const float value)
{
- static_assert(std::numeric_limits<float>::is_iec559);
- static_assert(sizeof(std::uint32_t) == sizeof(float));
union {
float src;
std::uint32_t dst;
|
