MCPcopy Create free account
hub / github.com/Tablecruncher/tablecruncher / dump_integer

Method dump_integer

external/json/json.hpp:11305–11336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11303 std::is_same<NumberType, number_integer_t>::value,
11304 int> = 0>
11305 void dump_integer(NumberType x)
11306 {
11307 // special case for "0"
11308 if (x == 0)
11309 {
11310 o->write_character('0');
11311 return;
11312 }
11313
11314 const bool is_negative = std::is_same<NumberType, number_integer_t>::value and not (x >= 0); // see issue #755
11315 std::size_t i = 0;
11316
11317 while (x != 0)
11318 {
11319 // spare 1 byte for '\0'
11320 assert(i < number_buffer.size() - 1);
11321
11322 const auto digit = std::labs(static_cast<long>(x % 10));
11323 number_buffer[i++] = static_cast<char>('0' + digit);
11324 x /= 10;
11325 }
11326
11327 if (is_negative)
11328 {
11329 // make sure there is capacity for the '-'
11330 assert(i < number_buffer.size() - 2);
11331 number_buffer[i++] = '-';
11332 }
11333
11334 std::reverse(number_buffer.begin(), number_buffer.begin() + i);
11335 o->write_characters(number_buffer.data(), i);
11336 }
11337
11338 /*!
11339 @brief dump a floating-point number

Callers

nothing calls this directly

Calls 5

dataMethod · 0.80
write_characterMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
write_charactersMethod · 0.45

Tested by

no test coverage detected