mirror of
https://github.com/nlohmann/json.git
synced 2026-02-28 06:16:24 +00:00
Make json_pointer usable as map key (again) (#3685)
* Make json_pointer usable as map key * Add unit tests
This commit is contained in:
committed by
GitHub
parent
231f3108ff
commit
31265dc69c
@@ -15,6 +15,7 @@ using nlohmann::json;
|
||||
using namespace nlohmann::literals; // NOLINT(google-build-using-namespace)
|
||||
#endif
|
||||
|
||||
#include <map>
|
||||
#include <sstream>
|
||||
|
||||
TEST_CASE("JSON pointers")
|
||||
@@ -697,6 +698,32 @@ TEST_CASE("JSON pointers")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("less-than comparison")
|
||||
{
|
||||
auto ptr1 = json::json_pointer("/foo/a");
|
||||
auto ptr2 = json::json_pointer("/foo/b");
|
||||
|
||||
CHECK(ptr1 < ptr2);
|
||||
CHECK_FALSE(ptr2 < ptr1);
|
||||
|
||||
// build with C++20
|
||||
// JSON_HAS_CPP_20
|
||||
#if JSON_HAS_THREE_WAY_COMPARISON
|
||||
CHECK((ptr1 <=> ptr2) == std::strong_ordering::less); // *NOPAD*
|
||||
CHECK(ptr2 > ptr1);
|
||||
#endif
|
||||
}
|
||||
|
||||
SECTION("usable as map key")
|
||||
{
|
||||
auto ptr = json::json_pointer("/foo");
|
||||
std::map<json::json_pointer, int> m;
|
||||
|
||||
m[ptr] = 42;
|
||||
|
||||
CHECK(m.find(ptr) != m.end());
|
||||
}
|
||||
|
||||
SECTION("backwards compatibility and mixing")
|
||||
{
|
||||
json j = R"(
|
||||
|
||||
Reference in New Issue
Block a user