8#ifndef XGBOOST_COMMON_CHARCONV_H_
9#define XGBOOST_COMMON_CHARCONV_H_
12#include <system_error>
31int32_t ToCharsFloatImpl(
float f,
char *
const result);
33 uint64_t
const value);
46 static constexpr size_t kToCharsSize = 16;
53 static constexpr size_t kToCharsSize =
54 std::numeric_limits<int64_t>::digits10 +
59 if (XGBOOST_EXPECT(!(
static_cast<size_t>(last - first) >=
62 return {first, std::errc::value_too_large};
64 auto index = detail::ToCharsFloatImpl(value, first);
66 ret.ptr = first + index;
68 if (XGBOOST_EXPECT(ret.ptr < last,
true)) {
71 ret.ec = std::errc::value_too_large;
77inline to_chars_result to_chars(
char *first,
char *last, int64_t value) {
78 if (XGBOOST_EXPECT(first == last,
false)) {
79 return {first, std::errc::value_too_large};
84 return {std::next(first), std::errc()};
86 uint64_t unsigned_value = value;
89 std::advance(first, 1);
90 unsigned_value =
static_cast<uint64_t
>(~value) +
static_cast<uint64_t
>(1);
92 return detail::ToCharsUnsignedImpl(first, last, unsigned_value);
95inline from_chars_result from_chars(
const char *buffer,
const char *end,
97 from_chars_result res =
98 detail::FromCharFloatImpl(buffer, std::distance(buffer, end), &value);
defines console logging options for xgboost. Use to enforce unified print behavior.
detail namespace with internal helper functions
Definition json.hpp:249
namespace of xgboost
Definition base.h:90