double decode_double()

in src/codec/number.cpp [43:58]


double decode_double(decode_context &context) {
  using atod_converter = double_conversion::StringToDoubleConverter;
  static const atod_converter converter(
      atod_converter::ALLOW_TRAILING_JUNK,
      std::numeric_limits<double>::quiet_NaN(),
      std::numeric_limits<double>::quiet_NaN(),
      nullptr,
      nullptr);

  int bytes_read = 0;
  auto remaining = static_cast<int>(context.end - context.position);
  auto result = converter.StringToDouble(context.position, remaining, &bytes_read);
  fail_if(context, std::isnan(result), "Invalid floating point number");
  skip_unchecked_n(context, bytes_read);
  return result;
}