From 542785ccbf0f777c0fe5c2461ab8c956f428e524 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Sun, 29 May 2022 07:10:36 -0700 Subject: [PATCH] Get rid of detail::bits --- include/fmt/format-inl.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index fee13174..9ddbf34a 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -197,17 +197,13 @@ template constexpr int16_t basic_impl_data::pow10_exponents[]; template constexpr uint64_t basic_impl_data::power_of_10_64[]; #endif -template struct bits { - static FMT_CONSTEXPR_DECL const int value = - static_cast(sizeof(T) * std::numeric_limits::digits); -}; - // A floating-point number f * pow(2, e) where F is an unsigned type. template struct basic_fp { F f; int e; - static constexpr const int num_significand_bits = bits::value; + static constexpr const int num_significand_bits = + static_cast(sizeof(F) * num_bits()); constexpr basic_fp() : f(0), e(0) {} constexpr basic_fp(uint64_t f_val, int e_val) : f(f_val), e(e_val) {} @@ -335,7 +331,7 @@ class bigint { return bigits_[to_unsigned(index)]; } - static FMT_CONSTEXPR_DECL const int bigit_bits = bits::value; + static FMT_CONSTEXPR_DECL const int bigit_bits = num_bits(); friend struct formatter; @@ -526,7 +522,7 @@ class bigint { sum += static_cast(n[i]) * n[j]; } (*this)[bigit_index] = static_cast(sum); - sum >>= bits::value; // Compute the carry. + sum >>= num_bits(); // Compute the carry. } // Do the same for the top half. for (int bigit_index = num_bigits; bigit_index < num_result_bigits; @@ -534,7 +530,7 @@ class bigint { for (int j = num_bigits - 1, i = bigit_index - j; i < num_bigits;) sum += static_cast(n[i++]) * n[j--]; (*this)[bigit_index] = static_cast(sum); - sum >>= bits::value; + sum >>= num_bits(); } remove_leading_zeros(); exp_ *= 2;