char buffer[20];
if (value < 0) {
result->push_back('-');
- using u = std::make_signed<size_t>::type;
result->append(
buffer,
- uint64ToBufferUnsafe(
- static_cast<size_t>(-static_cast<u>(value)), buffer));
+ uint64ToBufferUnsafe(~static_cast<uint64_t>(value) + 1, buffer));
} else {
result->append(buffer, uint64ToBufferUnsafe(uint64_t(value), buffer));
}