@@ -873,22 +873,20 @@ constexpr auto operator+(decimal32 lhs, Integer rhs) noexcept
873873
874874 // Make the significand type wide enough that it won't overflow during normalization
875875 auto sig_rhs {static_cast <promoted_significand_type>(detail::make_positive_unsigned (rhs))};
876- bool abs_lhs_bigger {abs (lhs) > sig_rhs};
876+ const bool abs_lhs_bigger {abs (lhs) > sig_rhs};
877877
878878 auto sig_lhs {lhs.full_significand ()};
879879 auto exp_lhs {lhs.biased_exponent ()};
880880 detail::normalize (sig_lhs, exp_lhs);
881- auto lhs_components {detail::decimal32_components{sig_lhs, exp_lhs, lhs.isneg ()}};
882881
883882 exp_type exp_rhs {0 };
884883 detail::normalize (sig_rhs, exp_rhs);
885884
886885 // Now that the rhs has been normalized it is guaranteed to fit into the decimal32 significand type
887- auto unsigned_sig_rhs {static_cast <typename detail::decimal32_components::significand_type>(detail::make_positive_unsigned (sig_rhs))};
888- auto rhs_components {detail::decimal32_components{unsigned_sig_rhs, exp_rhs, (rhs < 0 )}};
886+ const auto final_sig_rhs {static_cast <typename detail::decimal32_components::significand_type>(detail::make_positive_unsigned (sig_rhs))};
889887
890- return detail::d32_add_impl<decimal32>(lhs_components. sig , lhs_components. exp , lhs_components. sign ,
891- rhs_components. sig , rhs_components. exp , rhs_components. sign ,
888+ return detail::d32_add_impl<decimal32>(sig_lhs, exp_lhs, lhs. isneg () ,
889+ final_sig_rhs, exp_rhs, (rhs < 0 ) ,
892890 abs_lhs_bigger);
893891}
894892
0 commit comments