Skip to content

Commit

Permalink
🚨 fix compiler warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
nlohmann committed Jul 12, 2019
1 parent 104c5c1 commit b17440c
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 11 deletions.
15 changes: 14 additions & 1 deletion include/nlohmann/detail/iterators/iter_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,19 @@ class iter_impl
iter_impl(const iter_impl<const BasicJsonType>& other) noexcept
: m_object(other.m_object), m_it(other.m_it) {}

/*!
@brief converting assignment
@param[in] other const iterator to copy from
@return const/non-const iterator
@note It is not checked whether @a other is initialized.
*/
iter_impl& operator=(const iter_impl<const BasicJsonType>& other) noexcept
{
m_object = other.m_object;
m_it = other.m_it;
return *this;
}

/*!
@brief converting constructor
@param[in] other non-const iterator to copy from
Expand All @@ -138,7 +151,7 @@ class iter_impl

/*!
@brief converting assignment
@param[in,out] other non-const iterator to copy from
@param[in] other non-const iterator to copy from
@return const/non-const iterator
@note It is not checked whether @a other is initialized.
*/
Expand Down
8 changes: 4 additions & 4 deletions include/nlohmann/detail/output/binary_writer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1204,19 +1204,19 @@ class binary_writer

case value_t::number_unsigned:
{
if (j.m_value.number_unsigned <= (std::numeric_limits<std::int8_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int8_t>::max)()))
{
return 'i';
}
if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::uint8_t>::max)()))
{
return 'U';
}
if (j.m_value.number_unsigned <= (std::numeric_limits<std::int16_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int16_t>::max)()))
{
return 'I';
}
if (j.m_value.number_unsigned <= (std::numeric_limits<std::int32_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)()))
{
return 'l';
}
Expand Down
23 changes: 18 additions & 5 deletions single_include/nlohmann/json.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7831,6 +7831,19 @@ class iter_impl
iter_impl(const iter_impl<const BasicJsonType>& other) noexcept
: m_object(other.m_object), m_it(other.m_it) {}

/*!
@brief converting assignment
@param[in] other const iterator to copy from
@return const/non-const iterator
@note It is not checked whether @a other is initialized.
*/
iter_impl& operator=(const iter_impl<const BasicJsonType>& other) noexcept
{
m_object = other.m_object;
m_it = other.m_it;
return *this;
}

/*!
@brief converting constructor
@param[in] other non-const iterator to copy from
Expand All @@ -7841,7 +7854,7 @@ class iter_impl

/*!
@brief converting assignment
@param[in,out] other non-const iterator to copy from
@param[in] other non-const iterator to copy from
@return const/non-const iterator
@note It is not checked whether @a other is initialized.
*/
Expand Down Expand Up @@ -10872,19 +10885,19 @@ class binary_writer

case value_t::number_unsigned:
{
if (j.m_value.number_unsigned <= (std::numeric_limits<std::int8_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int8_t>::max)()))
{
return 'i';
}
if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::uint8_t>::max)()))
{
return 'U';
}
if (j.m_value.number_unsigned <= (std::numeric_limits<std::int16_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int16_t>::max)()))
{
return 'I';
}
if (j.m_value.number_unsigned <= (std::numeric_limits<std::int32_t>::max)())
if (j.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)()))
{
return 'l';
}
Expand Down
2 changes: 1 addition & 1 deletion test/src/unit-regression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1808,4 +1808,4 @@ template <typename T> class object {};
template <typename T> class string {};
template <typename T> class number_integer {};
template <typename T> class number_unsigned {};
template <typename T> class number_float {};
template <typename T> class number_float {};

0 comments on commit b17440c

Please sign in to comment.