Browse Source

stfu debian

lizzie/bitfield-rework
lizzie 2 days ago
parent
commit
7488b8e115
  1. 6
      src/common/bit_util.h

6
src/common/bit_util.h

@ -19,19 +19,19 @@ namespace Common {
template <typename T> template <typename T>
requires std::is_integral_v<T> requires std::is_integral_v<T>
[[nodiscard]] constexpr std::size_t BitSize() { [[nodiscard]] constexpr std::size_t BitSize() {
return sizeof(T) * CHAR_BIT;
return std::size_t(sizeof(T) * CHAR_BIT);
} }
template<typename T> template<typename T>
requires std::is_integral_v<T> requires std::is_integral_v<T>
[[nodiscard]] constexpr u32 MostSignificantBit(const T value) { [[nodiscard]] constexpr u32 MostSignificantBit(const T value) {
return (sizeof(T) * CHAR_BIT - 1) - std::countl_zero(value);
return u32(sizeof(T) * CHAR_BIT - 1 - std::countl_zero(value));
} }
template<typename T> template<typename T>
requires std::is_integral_v<T> requires std::is_integral_v<T>
[[nodiscard]] constexpr T Log2Floor(const T value) { [[nodiscard]] constexpr T Log2Floor(const T value) {
return MostSignificantBit<T>(value);
return T(MostSignificantBit<T>(value));
} }
template<typename T> template<typename T>

Loading…
Cancel
Save