From ee2e68f44f7b9ee099f98b668257b5d57a86a695 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 10 Aug 2021 18:14:30 +0100 Subject: Enable numeric conversion warning and fix the fallout --- lib/helpers.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib/helpers.h') diff --git a/lib/helpers.h b/lib/helpers.h index f09a206..2c7f4c2 100644 --- a/lib/helpers.h +++ b/lib/helpers.h @@ -1,6 +1,7 @@ #ifndef MYGRATE_HELPERS_H #define MYGRATE_HELPERS_H +#include #include #include #include @@ -8,8 +9,13 @@ #include namespace MyGrate { + template + using SmallestUInt = std::conditional_t>>; + + template constexpr inline auto - bitslice(const std::integral auto i, uint8_t offset, uint8_t size) + bitslice(const std::integral auto i, uint8_t offset) -> SmallestUInt { return (i >> offset) & ((1U << size) - 1U); } @@ -27,7 +33,8 @@ namespace MyGrate { constexpr inline auto mod100_extract(std::integral auto & i) { - const auto r {i % 100}; + using R = std::conditional_t, int8_t, uint8_t>; + const auto r {boost::numeric_cast(i % 100)}; i /= 100; return r; } -- cgit v1.2.3