Merge pull request #1643 from kevinlul/develop

Fix json.hpp compilation issue with other typedefs with same name (Issue #1642)
This commit is contained in:
Niels Lohmann 2019-07-01 22:57:04 +02:00 committed by GitHub
commit 9289a23a76
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 12 deletions

View file

@ -5750,25 +5750,25 @@ class basic_json
return (*lhs.m_value.array) < (*rhs.m_value.array); return (*lhs.m_value.array) < (*rhs.m_value.array);
case value_t::object: case value_t::object:
return *lhs.m_value.object < *rhs.m_value.object; return (*lhs.m_value.object) < (*rhs.m_value.object);
case value_t::null: case value_t::null:
return false; return false;
case value_t::string: case value_t::string:
return *lhs.m_value.string < *rhs.m_value.string; return (*lhs.m_value.string) < (*rhs.m_value.string);
case value_t::boolean: case value_t::boolean:
return lhs.m_value.boolean < rhs.m_value.boolean; return (lhs.m_value.boolean) < (rhs.m_value.boolean);
case value_t::number_integer: case value_t::number_integer:
return lhs.m_value.number_integer < rhs.m_value.number_integer; return (lhs.m_value.number_integer) < (rhs.m_value.number_integer);
case value_t::number_unsigned: case value_t::number_unsigned:
return lhs.m_value.number_unsigned < rhs.m_value.number_unsigned; return (lhs.m_value.number_unsigned) < (rhs.m_value.number_unsigned);
case value_t::number_float: case value_t::number_float:
return lhs.m_value.number_float < rhs.m_value.number_float; return (lhs.m_value.number_float) < (rhs.m_value.number_float);
default: default:
return false; return false;

View file

@ -18561,25 +18561,25 @@ class basic_json
return (*lhs.m_value.array) < (*rhs.m_value.array); return (*lhs.m_value.array) < (*rhs.m_value.array);
case value_t::object: case value_t::object:
return *lhs.m_value.object < *rhs.m_value.object; return (*lhs.m_value.object) < (*rhs.m_value.object);
case value_t::null: case value_t::null:
return false; return false;
case value_t::string: case value_t::string:
return *lhs.m_value.string < *rhs.m_value.string; return (*lhs.m_value.string) < (*rhs.m_value.string);
case value_t::boolean: case value_t::boolean:
return lhs.m_value.boolean < rhs.m_value.boolean; return (lhs.m_value.boolean) < (rhs.m_value.boolean);
case value_t::number_integer: case value_t::number_integer:
return lhs.m_value.number_integer < rhs.m_value.number_integer; return (lhs.m_value.number_integer) < (rhs.m_value.number_integer);
case value_t::number_unsigned: case value_t::number_unsigned:
return lhs.m_value.number_unsigned < rhs.m_value.number_unsigned; return (lhs.m_value.number_unsigned) < (rhs.m_value.number_unsigned);
case value_t::number_float: case value_t::number_float:
return lhs.m_value.number_float < rhs.m_value.number_float; return (lhs.m_value.number_float) < (rhs.m_value.number_float);
default: default:
return false; return false;

View file

@ -1799,3 +1799,13 @@ TEST_CASE("regression tests, exceptions dependent")
} }
} }
#endif #endif
/////////////////////////////////////////////////////////////////////
// for #1642
/////////////////////////////////////////////////////////////////////
template <typename T> class array {};
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 {};