mirror of
https://github.com/nlohmann/json.git
synced 2024-11-28 09:09:02 +08:00
🏁 added parentheses around max/min calls #506
When <Windows.h> is included with MSVC, a macro NOMINMAX is defined that yields compilation errors when max/min calls are encountered. This can be fixed by un-defining NOMINMAX, or by placing parentheses around all min/max calls. We chose the latter.
This commit is contained in:
parent
b026591e9e
commit
95474e420d
38
src/json.hpp
38
src/json.hpp
@ -7494,25 +7494,25 @@ class basic_json
|
||||
// positive fixnum
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint8_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
// uint 8
|
||||
v.push_back(0xcc);
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint16_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
// uint 16
|
||||
v.push_back(0xcd);
|
||||
add_to_vector(v, 2, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint32_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
// uint 32
|
||||
v.push_back(0xce);
|
||||
add_to_vector(v, 4, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint64_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint64_t>::max)())
|
||||
{
|
||||
// uint 64
|
||||
v.push_back(0xcf);
|
||||
@ -7526,25 +7526,25 @@ class basic_json
|
||||
// negative fixnum
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int8_t>::min() and j.m_value.number_integer <= std::numeric_limits<int8_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int8_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int8_t>::max)())
|
||||
{
|
||||
// int 8
|
||||
v.push_back(0xd0);
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int16_t>::min() and j.m_value.number_integer <= std::numeric_limits<int16_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int16_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int16_t>::max)())
|
||||
{
|
||||
// int 16
|
||||
v.push_back(0xd1);
|
||||
add_to_vector(v, 2, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int32_t>::min() and j.m_value.number_integer <= std::numeric_limits<int32_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int32_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int32_t>::max)())
|
||||
{
|
||||
// int 32
|
||||
v.push_back(0xd2);
|
||||
add_to_vector(v, 4, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int64_t>::min() and j.m_value.number_integer <= std::numeric_limits<int64_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int64_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int64_t>::max)())
|
||||
{
|
||||
// int 64
|
||||
v.push_back(0xd3);
|
||||
@ -7561,25 +7561,25 @@ class basic_json
|
||||
// positive fixnum
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint8_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
// uint 8
|
||||
v.push_back(0xcc);
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint16_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
// uint 16
|
||||
v.push_back(0xcd);
|
||||
add_to_vector(v, 2, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint32_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
// uint 32
|
||||
v.push_back(0xce);
|
||||
add_to_vector(v, 4, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint64_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint64_t>::max)())
|
||||
{
|
||||
// uint 64
|
||||
v.push_back(0xcf);
|
||||
@ -7736,19 +7736,19 @@ class basic_json
|
||||
{
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer <= std::numeric_limits<uint8_t>::max())
|
||||
else if (j.m_value.number_integer <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
v.push_back(0x18);
|
||||
// one-byte uint8_t
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer <= std::numeric_limits<uint16_t>::max())
|
||||
else if (j.m_value.number_integer <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
v.push_back(0x19);
|
||||
// two-byte uint16_t
|
||||
add_to_vector(v, 2, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer <= std::numeric_limits<uint32_t>::max())
|
||||
else if (j.m_value.number_integer <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
v.push_back(0x1a);
|
||||
// four-byte uint32_t
|
||||
@ -7770,19 +7770,19 @@ class basic_json
|
||||
{
|
||||
v.push_back(static_cast<uint8_t>(0x20 + positive_number));
|
||||
}
|
||||
else if (positive_number <= std::numeric_limits<uint8_t>::max())
|
||||
else if (positive_number <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
// int 8
|
||||
v.push_back(0x38);
|
||||
add_to_vector(v, 1, positive_number);
|
||||
}
|
||||
else if (positive_number <= std::numeric_limits<uint16_t>::max())
|
||||
else if (positive_number <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
// int 16
|
||||
v.push_back(0x39);
|
||||
add_to_vector(v, 2, positive_number);
|
||||
}
|
||||
else if (positive_number <= std::numeric_limits<uint32_t>::max())
|
||||
else if (positive_number <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
// int 32
|
||||
v.push_back(0x3a);
|
||||
@ -7995,7 +7995,7 @@ class basic_json
|
||||
}
|
||||
|
||||
// second case: adding offset would result in overflow
|
||||
if ((size > (std::numeric_limits<size_t>::max() - offset)))
|
||||
if ((size > ((std::numeric_limits<size_t>::max)() - offset)))
|
||||
{
|
||||
JSON_THROW(parse_error(110, offset + 1, "cannot read " + std::to_string(len) + " bytes from vector"));
|
||||
}
|
||||
|
@ -7494,25 +7494,25 @@ class basic_json
|
||||
// positive fixnum
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint8_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
// uint 8
|
||||
v.push_back(0xcc);
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint16_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
// uint 16
|
||||
v.push_back(0xcd);
|
||||
add_to_vector(v, 2, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint32_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
// uint 32
|
||||
v.push_back(0xce);
|
||||
add_to_vector(v, 4, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint64_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint64_t>::max)())
|
||||
{
|
||||
// uint 64
|
||||
v.push_back(0xcf);
|
||||
@ -7526,25 +7526,25 @@ class basic_json
|
||||
// negative fixnum
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int8_t>::min() and j.m_value.number_integer <= std::numeric_limits<int8_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int8_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int8_t>::max)())
|
||||
{
|
||||
// int 8
|
||||
v.push_back(0xd0);
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int16_t>::min() and j.m_value.number_integer <= std::numeric_limits<int16_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int16_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int16_t>::max)())
|
||||
{
|
||||
// int 16
|
||||
v.push_back(0xd1);
|
||||
add_to_vector(v, 2, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int32_t>::min() and j.m_value.number_integer <= std::numeric_limits<int32_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int32_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int32_t>::max)())
|
||||
{
|
||||
// int 32
|
||||
v.push_back(0xd2);
|
||||
add_to_vector(v, 4, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer >= std::numeric_limits<int64_t>::min() and j.m_value.number_integer <= std::numeric_limits<int64_t>::max())
|
||||
else if (j.m_value.number_integer >= (std::numeric_limits<int64_t>::min)() and j.m_value.number_integer <= (std::numeric_limits<int64_t>::max)())
|
||||
{
|
||||
// int 64
|
||||
v.push_back(0xd3);
|
||||
@ -7561,25 +7561,25 @@ class basic_json
|
||||
// positive fixnum
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint8_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
// uint 8
|
||||
v.push_back(0xcc);
|
||||
add_to_vector(v, 1, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint16_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
// uint 16
|
||||
v.push_back(0xcd);
|
||||
add_to_vector(v, 2, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint32_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
// uint 32
|
||||
v.push_back(0xce);
|
||||
add_to_vector(v, 4, j.m_value.number_unsigned);
|
||||
}
|
||||
else if (j.m_value.number_unsigned <= std::numeric_limits<uint64_t>::max())
|
||||
else if (j.m_value.number_unsigned <= (std::numeric_limits<uint64_t>::max)())
|
||||
{
|
||||
// uint 64
|
||||
v.push_back(0xcf);
|
||||
@ -7736,19 +7736,19 @@ class basic_json
|
||||
{
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer <= std::numeric_limits<uint8_t>::max())
|
||||
else if (j.m_value.number_integer <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
v.push_back(0x18);
|
||||
// one-byte uint8_t
|
||||
add_to_vector(v, 1, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer <= std::numeric_limits<uint16_t>::max())
|
||||
else if (j.m_value.number_integer <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
v.push_back(0x19);
|
||||
// two-byte uint16_t
|
||||
add_to_vector(v, 2, j.m_value.number_integer);
|
||||
}
|
||||
else if (j.m_value.number_integer <= std::numeric_limits<uint32_t>::max())
|
||||
else if (j.m_value.number_integer <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
v.push_back(0x1a);
|
||||
// four-byte uint32_t
|
||||
@ -7770,19 +7770,19 @@ class basic_json
|
||||
{
|
||||
v.push_back(static_cast<uint8_t>(0x20 + positive_number));
|
||||
}
|
||||
else if (positive_number <= std::numeric_limits<uint8_t>::max())
|
||||
else if (positive_number <= (std::numeric_limits<uint8_t>::max)())
|
||||
{
|
||||
// int 8
|
||||
v.push_back(0x38);
|
||||
add_to_vector(v, 1, positive_number);
|
||||
}
|
||||
else if (positive_number <= std::numeric_limits<uint16_t>::max())
|
||||
else if (positive_number <= (std::numeric_limits<uint16_t>::max)())
|
||||
{
|
||||
// int 16
|
||||
v.push_back(0x39);
|
||||
add_to_vector(v, 2, positive_number);
|
||||
}
|
||||
else if (positive_number <= std::numeric_limits<uint32_t>::max())
|
||||
else if (positive_number <= (std::numeric_limits<uint32_t>::max)())
|
||||
{
|
||||
// int 32
|
||||
v.push_back(0x3a);
|
||||
@ -7995,7 +7995,7 @@ class basic_json
|
||||
}
|
||||
|
||||
// second case: adding offset would result in overflow
|
||||
if ((size > (std::numeric_limits<size_t>::max() - offset)))
|
||||
if ((size > ((std::numeric_limits<size_t>::max)() - offset)))
|
||||
{
|
||||
JSON_THROW(parse_error(110, offset + 1, "cannot read " + std::to_string(len) + " bytes from vector"));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user