From db69a8458ce1cac2ab67f450cb61c654bd8a3436 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Fri, 10 Mar 2023 11:33:39 -0800 Subject: [PATCH] Port signed_significand_bits --- include/boost/charconv/detail/dragonbox.hpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/include/boost/charconv/detail/dragonbox.hpp b/include/boost/charconv/detail/dragonbox.hpp index 4012b54..814ad66 100644 --- a/include/boost/charconv/detail/dragonbox.hpp +++ b/include/boost/charconv/detail/dragonbox.hpp @@ -298,8 +298,9 @@ namespace boost { namespace charconv { } }; - template - struct signed_significand_bits { + template + struct signed_significand_bits + { using type = T; using traits_type = Traits; using carrier_uint = typename traits_type::carrier_uint; @@ -311,16 +312,19 @@ namespace boost { namespace charconv { : u{bit_pattern} {} // Shift the obtained signed significand bits to the left by 1 to remove the sign bit. - constexpr carrier_uint remove_sign_bit_and_shift() const noexcept { + constexpr carrier_uint remove_sign_bit_and_shift() const noexcept + { return traits_type::remove_sign_bit_and_shift(u); } constexpr bool is_positive() const noexcept { return traits_type::is_positive(u); } constexpr bool is_negative() const noexcept { return traits_type::is_negative(u); } - constexpr bool has_all_zero_significand_bits() const noexcept { + constexpr bool has_all_zero_significand_bits() const noexcept + { return traits_type::has_all_zero_significand_bits(u); } - constexpr bool has_even_significand_bits() const noexcept { + constexpr bool has_even_significand_bits() const noexcept + { return traits_type::has_even_significand_bits(u); } };