72 double& value)
noexcept {
73#if defined(__cpp_lib_to_chars) && __cpp_lib_to_chars >= 201611L
74 return std::from_chars(first, last, value);
77 return {first, std::errc::invalid_argument};
85 const std::size_t n =
static_cast<std::size_t
>(last - first);
88 const char* cstr =
nullptr;
89 if (n <
sizeof(stack_buf)) {
90 std::memcpy(stack_buf, first, n);
94 heap_buf.assign(first, last);
95 cstr = heap_buf.c_str();
101 v = strtod_l(cstr, &end, loc);
103 v = std::strtod(cstr, &end);
107 return {first, std::errc::invalid_argument};
110 return {first + (end - cstr), std::errc{}};
std::from_chars_result from_chars_double(const char *first, const char *last, double &value) noexcept
Locale-independent parse of a double from a character range.
Definition charconv_compat.hpp:70