diff --git a/include/rapidjson/internal/dtoa.h b/include/rapidjson/internal/dtoa.h index de45e44..6ae588a 100644 --- a/include/rapidjson/internal/dtoa.h +++ b/include/rapidjson/internal/dtoa.h @@ -53,7 +53,7 @@ struct DiyFp { uint64_t u64; } u = { d }; - int biased_e = (u.u64 & kDpExponentMask) >> kDpSignificandSize; + int biased_e = static_cast((u.u64 & kDpExponentMask) >> kDpSignificandSize); uint64_t significand = (u.u64 & kDpSignificandMask); if (biased_e != 0) { f = significand + kDpHiddenBit; @@ -78,7 +78,7 @@ struct DiyFp { return DiyFp(h, e + rhs.e + 64); #elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__) unsigned __int128 p = static_cast(f) * static_cast(rhs.f); - uint64_t h = p >> 64; + uint64_t h = static_cast(p >> 64); uint64_t l = static_cast(p); if (l & (uint64_t(1) << 63)) // rounding h++; @@ -284,7 +284,7 @@ inline void DigitGen(const DiyFp& W, const DiyFp& Mp, uint64_t delta, char* buff #endif } if (d || *len) - buffer[(*len)++] = '0' + static_cast(d); + buffer[(*len)++] = static_cast('0' + static_cast(d)); kappa--; uint64_t tmp = (static_cast(p1) << -one.e) + p2; if (tmp <= delta) { @@ -300,7 +300,7 @@ inline void DigitGen(const DiyFp& W, const DiyFp& Mp, uint64_t delta, char* buff delta *= 10; char d = static_cast(p2 >> -one.e); if (d || *len) - buffer[(*len)++] = '0' + d; + buffer[(*len)++] = static_cast('0' + d); p2 &= one.f - 1; kappa--; if (p2 < delta) { @@ -332,7 +332,7 @@ inline char* WriteExponent(int K, char* buffer) { } if (K >= 100) { - *buffer++ = '0' + static_cast(K / 100); + *buffer++ = static_cast('0' + static_cast(K / 100)); K %= 100; const char* d = GetDigitsLut() + K * 2; *buffer++ = d[0]; @@ -344,7 +344,7 @@ inline char* WriteExponent(int K, char* buffer) { *buffer++ = d[1]; } else - *buffer++ = '0' + static_cast(K); + *buffer++ = static_cast('0' + static_cast(K)); return buffer; } diff --git a/include/rapidjson/internal/itoa.h b/include/rapidjson/internal/itoa.h index 2ff199a..425e983 100644 --- a/include/rapidjson/internal/itoa.h +++ b/include/rapidjson/internal/itoa.h @@ -91,7 +91,7 @@ inline char* u32toa(uint32_t value, char* buffer) { *buffer++ = cDigitsLut[i + 1]; } else - *buffer++ = '0' + static_cast(a); + *buffer++ = static_cast('0' + static_cast(a)); const uint32_t b = value / 10000; // 0 to 9999 const uint32_t c = value % 10000; // 0 to 9999 @@ -227,14 +227,14 @@ inline char* u64toa(uint64_t value, char* buffer) { value %= kTen16; if (a < 10) - *buffer++ = '0' + static_cast(a); + *buffer++ = static_cast('0' + static_cast(a)); else if (a < 100) { const uint32_t i = a << 1; *buffer++ = cDigitsLut[i]; *buffer++ = cDigitsLut[i + 1]; } else if (a < 1000) { - *buffer++ = '0' + static_cast(a / 100); + *buffer++ = static_cast('0' + static_cast(a / 100)); const uint32_t i = (a % 100) << 1; *buffer++ = cDigitsLut[i];