From fb87dfff387b677beaaf3464e225d282a2e0fbd1 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Fri, 27 Jan 2023 10:10:25 -0800 Subject: [PATCH] Fix MSVC C4146 --- include/boost/charconv/to_chars.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/boost/charconv/to_chars.hpp b/include/boost/charconv/to_chars.hpp index 158e385..e3033b7 100644 --- a/include/boost/charconv/to_chars.hpp +++ b/include/boost/charconv/to_chars.hpp @@ -255,7 +255,7 @@ BOOST_CXX14_CONSTEXPR to_chars_result to_chars_integer_impl(char* first, char* l return {first, 0}; } - auto unsigned_value = static_cast(value < 0 ? -value : value); + Unsigned_Integer unsigned_value {}; const auto unsigned_base = static_cast(base); BOOST_IF_CONSTEXPR (std::is_signed::value) @@ -263,7 +263,16 @@ BOOST_CXX14_CONSTEXPR to_chars_result to_chars_integer_impl(char* first, char* l if (value < 0) { *first++ = '-'; + unsigned_value = apply_sign(value); } + else + { + unsigned_value = value; + } + } + else + { + unsigned_value = value; } constexpr Unsigned_Integer zero = 48U; // Char for '0'