MCPcopy Create free account
hub / github.com/bitfieldaudio/OTTO / dump_integer

Method dump_integer

external/include/json.hpp:6638–6669  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6636 std::is_same<NumberType, number_integer_t>::value,
6637 int> = 0>
6638 void dump_integer(NumberType x)
6639 {
6640 // special case for "0"
6641 if (x == 0)
6642 {
6643 o->write_character('0');
6644 return;
6645 }
6646
6647 const bool is_negative = (x <= 0) and (x != 0); // see issue #755
6648 std::size_t i = 0;
6649
6650 while (x != 0)
6651 {
6652 // spare 1 byte for '\0'
6653 assert(i < number_buffer.size() - 1);
6654
6655 const auto digit = std::labs(static_cast<long>(x % 10));
6656 number_buffer[i++] = static_cast<char>('0' + digit);
6657 x /= 10;
6658 }
6659
6660 if (is_negative)
6661 {
6662 // make sure there is capacity for the '-'
6663 assert(i < number_buffer.size() - 2);
6664 number_buffer[i++] = '-';
6665 }
6666
6667 std::reverse(number_buffer.begin(), number_buffer.begin() + i);
6668 o->write_characters(number_buffer.data(), i);
6669 }
6670
6671 /*!
6672 @brief dump a floating-point number

Callers

nothing calls this directly

Calls 6

reverseFunction · 0.85
write_characterMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
write_charactersMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected