Use r.ptr instead of last in fallback routine

[ci skip]
This commit is contained in:
Matt Borland
2023-05-25 11:01:34 +02:00
parent 94a45e7cf2
commit fd91b0fc7e

View File

@@ -158,7 +158,7 @@ from_chars_result from_chars_float_impl(const char* first, const char* last, T&
}
else
{
r = from_chars_strtod(first, last, value);
r = from_chars_strtod(first, r.ptr, value);
}
}
else BOOST_IF_CONSTEXPR (std::is_same<T, double>::value)
@@ -175,7 +175,7 @@ from_chars_result from_chars_float_impl(const char* first, const char* last, T&
}
else
{
r = from_chars_strtod(first, last, value);
r = from_chars_strtod(first, r.ptr, value);
}
}
else BOOST_IF_CONSTEXPR (std::is_same<T, long double>::value)
@@ -185,19 +185,18 @@ from_chars_result from_chars_float_impl(const char* first, const char* last, T&
value = return_val;
r.ec = std::errc::result_out_of_range;
}
#if BOOST_CHARCONV_LDBL_BITS == 64
else if (exponent < -342)
#else // 80 or 128 bit long doubles have same range
#if BOOST_CHARCONV_LDBL_BITS == 64
else if (exponent < -342)
#else // 80 or 128 bit long doubles have same range
else if (exponent < -4965)
#endif
#endif
{
value = sign ? -0.0L : 0.0L;
r.ec = std::errc::result_out_of_range;
}
else
{
r = from_chars_strtod(first, last, value);
r = from_chars_strtod(first, r.ptr, value);
}
}
}