mirror of
https://github.com/nlohmann/json.git
synced 2025-01-03 20:17:55 +08:00
d909f80960
* Add versioned inline namespace Add a versioned inline namespace to prevent ABI issues when linking code using multiple library versions. * Add namespace macros * Encode ABI information in inline namespace Add _diag suffix to inline namespace if JSON_DIAGNOSTICS is enabled, and _ldvcmp suffix if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON is enabled. * Move ABI-affecting macros into abi_macros.hpp * Move std_fs namespace definition into std_fs.hpp * Remove std_fs namespace from unit test * Format more files in tests directory * Add unit tests * Update documentation * Fix GDB pretty printer * fixup! Add namespace macros * Derive ABI prefix from NLOHMANN_JSON_VERSION_*
29 lines
742 B
C++
29 lines
742 B
C++
#include "doctest_compatibility.h"
|
|
|
|
#include <nlohmann/json.hpp>
|
|
|
|
TEST_CASE("use current library with inline namespace")
|
|
{
|
|
SECTION("implicitly")
|
|
{
|
|
using nlohmann::json;
|
|
using nlohmann::ordered_json;
|
|
|
|
json j;
|
|
// In v3.10.5 mixing json_pointers of different basic_json types
|
|
// results in implicit string conversion
|
|
j[ordered_json::json_pointer("/root")] = json::object();
|
|
CHECK(j.dump() == "{\"root\":{}}");
|
|
}
|
|
|
|
SECTION("explicitly")
|
|
{
|
|
using NLOHMANN_JSON_NAMESPACE::json;
|
|
using NLOHMANN_JSON_NAMESPACE::ordered_json;
|
|
|
|
json j;
|
|
j[ordered_json::json_pointer("/root")] = json::object();
|
|
CHECK(j.dump() == "{\"root\":{}}");
|
|
}
|
|
}
|