fixed issue #239 (-Wconversion warnings)
This commit is contained in:
commit
db5c9ec9ba
2 changed files with 12 additions and 8 deletions
10
src/json.hpp
10
src/json.hpp
|
@ -757,7 +757,7 @@ class basic_json
|
||||||
/// assignment
|
/// assignment
|
||||||
type_data_t& operator=(value_t rhs)
|
type_data_t& operator=(value_t rhs)
|
||||||
{
|
{
|
||||||
bits.type = static_cast<uint16_t>(rhs);
|
bits.type = static_cast<uint16_t>(rhs) & 15; // avoid overflow
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -765,7 +765,7 @@ class basic_json
|
||||||
type_data_t(value_t t) noexcept
|
type_data_t(value_t t) noexcept
|
||||||
{
|
{
|
||||||
*reinterpret_cast<uint16_t*>(this) = 0;
|
*reinterpret_cast<uint16_t*>(this) = 0;
|
||||||
bits.type = static_cast<uint16_t>(t);
|
bits.type = static_cast<uint16_t>(t) & 15; // avoid overflow
|
||||||
}
|
}
|
||||||
|
|
||||||
/// default constructor
|
/// default constructor
|
||||||
|
@ -6011,9 +6011,11 @@ class basic_json
|
||||||
{
|
{
|
||||||
// convert a number 0..15 to its hex representation
|
// convert a number 0..15 to its hex representation
|
||||||
// (0..f)
|
// (0..f)
|
||||||
auto hexify = [](const char v) -> char
|
const auto hexify = [](const int v) -> char
|
||||||
{
|
{
|
||||||
return (v < 10) ? ('0' + v) : ('a' + v - 10);
|
return (v < 10)
|
||||||
|
? ('0' + static_cast<char>(v))
|
||||||
|
: ('a' + static_cast<char>((v - 10) & 0x1f));
|
||||||
};
|
};
|
||||||
|
|
||||||
// print character c as \uxxxx
|
// print character c as \uxxxx
|
||||||
|
|
|
@ -757,7 +757,7 @@ class basic_json
|
||||||
/// assignment
|
/// assignment
|
||||||
type_data_t& operator=(value_t rhs)
|
type_data_t& operator=(value_t rhs)
|
||||||
{
|
{
|
||||||
bits.type = static_cast<uint16_t>(rhs);
|
bits.type = static_cast<uint16_t>(rhs) & 15; // avoid overflow
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -765,7 +765,7 @@ class basic_json
|
||||||
type_data_t(value_t t) noexcept
|
type_data_t(value_t t) noexcept
|
||||||
{
|
{
|
||||||
*reinterpret_cast<uint16_t*>(this) = 0;
|
*reinterpret_cast<uint16_t*>(this) = 0;
|
||||||
bits.type = static_cast<uint16_t>(t);
|
bits.type = static_cast<uint16_t>(t) & 15; // avoid overflow
|
||||||
}
|
}
|
||||||
|
|
||||||
/// default constructor
|
/// default constructor
|
||||||
|
@ -6011,9 +6011,11 @@ class basic_json
|
||||||
{
|
{
|
||||||
// convert a number 0..15 to its hex representation
|
// convert a number 0..15 to its hex representation
|
||||||
// (0..f)
|
// (0..f)
|
||||||
auto hexify = [](const char v) -> char
|
const auto hexify = [](const int v) -> char
|
||||||
{
|
{
|
||||||
return (v < 10) ? ('0' + v) : ('a' + v - 10);
|
return (v < 10)
|
||||||
|
? ('0' + static_cast<char>(v))
|
||||||
|
: ('a' + static_cast<char>((v - 10) & 0x1f));
|
||||||
};
|
};
|
||||||
|
|
||||||
// print character c as \uxxxx
|
// print character c as \uxxxx
|
||||||
|
|
Loading…
Reference in a new issue