mirror of
https://github.com/nlohmann/json.git
synced 2026-10-13 10:14:53 +00:00
Besides json_fwd.hpp, include analyzers also told clients of <nlohmann/json.hpp> to include detail/json_ref.hpp (brace initialization), json_literals.hpp (_json, _json_pointer), adl_serializer.hpp, detail/macro_scope.hpp (NLOHMANN_DEFINE_*) and detail/abi_macros.hpp. Mark those includes as exported, too. ci_single_binaries only checked each header on its own, so it could not notice this. It now also runs IWYU and clang-tidy's misc-include-cleaner on small client programs in tests/iwyu_consumer, which fail on develop. With the exports, json_literals.hpp no longer gets the json_fwd.hpp suggestion that kept it out of the IWYU gate, so it is gated again. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
31 lines
1.1 KiB
C++
31 lines
1.1 KiB
C++
// __ _____ _____ _____
|
|
// __| | __| | | | JSON for Modern C++ (supporting code)
|
|
// | | |__ | | | | | | version 3.12.0
|
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|
//
|
|
// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann <https://nlohmann.me>
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
// Uses the library the way a client does, including only <nlohmann/json.hpp>. ci_single_binaries
|
|
// runs include-what-you-use and clang-tidy's misc-include-cleaner on this file and fails if either
|
|
// asks for another nlohmann header, which would mean json.hpp does not export it (issue #5812).
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <nlohmann/json.hpp>
|
|
|
|
int main()
|
|
{
|
|
// brace initialization (nlohmann::json, detail::json_ref)
|
|
nlohmann::json j = {{"pi", 3.141}, {"list", {1, 0, 2}}};
|
|
const nlohmann::ordered_json o = {{"b", 1}, {"a", 2}};
|
|
|
|
j["parsed"] = nlohmann::json::parse(R"({"happy": true})");
|
|
j["binary"] = nlohmann::json::binary(std::vector<std::uint8_t> {0xCA, 0xFE}, 42);
|
|
|
|
const std::string s = j.dump() + o.dump();
|
|
return s.empty() ? 1 : 0;
|
|
}
|