Unverified Commit 4d7c2992 authored by Niels Lohmann's avatar Niels Lohmann

🚑 fix for #486

Implemented std::less<value_t> to allow using value_t as std::map key
in MSVC.
parents ff0b18d1 f4126e4d
...@@ -13048,6 +13048,22 @@ struct hash<nlohmann::json> ...@@ -13048,6 +13048,22 @@ struct hash<nlohmann::json>
return h(j.dump()); return h(j.dump());
} }
}; };
/// specialization for std::less<value_t>
template <>
struct less<::nlohmann::detail::value_t>
{
/*!
@brief compare two value_t enum values
@since version 3.0.0
*/
bool operator()(nlohmann::detail::value_t lhs,
nlohmann::detail::value_t rhs) const noexcept
{
return nlohmann::detail::operator<(lhs, rhs);
}
};
} // namespace std } // namespace std
/*! /*!
......
...@@ -12082,6 +12082,22 @@ struct hash<nlohmann::json> ...@@ -12082,6 +12082,22 @@ struct hash<nlohmann::json>
return h(j.dump()); return h(j.dump());
} }
}; };
/// specialization for std::less<value_t>
template <>
struct less<::nlohmann::detail::value_t>
{
/*!
@brief compare two value_t enum values
@since version 3.0.0
*/
bool operator()(nlohmann::detail::value_t lhs,
nlohmann::detail::value_t rhs) const noexcept
{
return nlohmann::detail::operator<(lhs, rhs);
}
};
} // namespace std } // namespace std
/*! /*!
......
...@@ -796,6 +796,13 @@ TEST_CASE("regression tests") ...@@ -796,6 +796,13 @@ TEST_CASE("regression tests")
CHECK(s1 == s2); CHECK(s1 == s2);
} }
SECTION("issue #486 - json::value_t can't be a map's key type in VC++ 2015")
{
// the code below must compile with MSVC
std::map<json::value_t, std::string> jsonTypes ;
jsonTypes[json::value_t::array] = "array";
}
SECTION("issue #494 - conversion from vector<bool> to json fails to build") SECTION("issue #494 - conversion from vector<bool> to json fails to build")
{ {
std::vector<bool> boolVector = {false, true, false, false}; std::vector<bool> boolVector = {false, true, false, false};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment