1c5f01b2fSopenharmony_ci#include <compare> 2c5f01b2fSopenharmony_ci#include <iostream> 3c5f01b2fSopenharmony_ci#include <nlohmann/json.hpp> 4c5f01b2fSopenharmony_ci 5c5f01b2fSopenharmony_ciusing json = nlohmann::json; 6c5f01b2fSopenharmony_ci 7c5f01b2fSopenharmony_ciconst char* to_string(const std::partial_ordering& po) 8c5f01b2fSopenharmony_ci{ 9c5f01b2fSopenharmony_ci if (std::is_lt(po)) 10c5f01b2fSopenharmony_ci { 11c5f01b2fSopenharmony_ci return "less"; 12c5f01b2fSopenharmony_ci } 13c5f01b2fSopenharmony_ci else if (std::is_gt(po)) 14c5f01b2fSopenharmony_ci { 15c5f01b2fSopenharmony_ci return "greater"; 16c5f01b2fSopenharmony_ci } 17c5f01b2fSopenharmony_ci else if (std::is_eq(po)) 18c5f01b2fSopenharmony_ci { 19c5f01b2fSopenharmony_ci return "equivalent"; 20c5f01b2fSopenharmony_ci } 21c5f01b2fSopenharmony_ci return "unordered"; 22c5f01b2fSopenharmony_ci} 23c5f01b2fSopenharmony_ci 24c5f01b2fSopenharmony_ciint main() 25c5f01b2fSopenharmony_ci{ 26c5f01b2fSopenharmony_ci // create several JSON values 27c5f01b2fSopenharmony_ci json array_1 = {1, 2, 3}; 28c5f01b2fSopenharmony_ci json array_2 = {1, 2, 4}; 29c5f01b2fSopenharmony_ci json object_1 = {{"A", "a"}, {"B", "b"}}; 30c5f01b2fSopenharmony_ci json object_2 = {{"B", "b"}, {"A", "a"}}; 31c5f01b2fSopenharmony_ci json number = 17; 32c5f01b2fSopenharmony_ci json string = "foo"; 33c5f01b2fSopenharmony_ci json discarded = json(json::value_t::discarded); 34c5f01b2fSopenharmony_ci 35c5f01b2fSopenharmony_ci 36c5f01b2fSopenharmony_ci // output values and comparisons 37c5f01b2fSopenharmony_ci std::cout << array_1 << " <=> " << array_2 << " := " << to_string(array_1 <=> array_2) << '\n'; // *NOPAD* 38c5f01b2fSopenharmony_ci std::cout << object_1 << " <=> " << object_2 << " := " << to_string(object_1 <=> object_2) << '\n'; // *NOPAD* 39c5f01b2fSopenharmony_ci std::cout << string << " <=> " << number << " := " << to_string(string <=> number) << '\n'; // *NOPAD* 40c5f01b2fSopenharmony_ci std::cout << string << " <=> " << discarded << " := " << to_string(string <=> discarded) << '\n'; // *NOPAD* 41c5f01b2fSopenharmony_ci} 42