| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | //     __ _____ _____ _____//  __|  |   __|     |   | |  JSON for Modern C++// |  |  |__   |  |  | | | |  version 3.12.0// |_____|_____|_____|_|___|  https://github.com/nlohmann/json//// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>// SPDX-License-Identifier: MIT#pragma once// This file contains all macro definitions affecting or depending on the ABI#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK    #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)        #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0            #warning "Already included a different version of the library!"        #endif    #endif#endif#define NLOHMANN_JSON_VERSION_MAJOR 3   // NOLINT(modernize-macro-to-enum)#define NLOHMANN_JSON_VERSION_MINOR 12  // NOLINT(modernize-macro-to-enum)#define NLOHMANN_JSON_VERSION_PATCH 0   // NOLINT(modernize-macro-to-enum)#ifndef JSON_DIAGNOSTICS    #define JSON_DIAGNOSTICS 0#endif#ifndef JSON_DIAGNOSTIC_POSITIONS    #define JSON_DIAGNOSTIC_POSITIONS 0#endif#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON    #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0#endif#if JSON_DIAGNOSTICS    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag#else    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS#endif#if JSON_DIAGNOSTIC_POSITIONS    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp#else    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS#endif#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON    #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp#else    #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON#endif#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION    #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0#endif// Construct the namespace ABI tags component#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \    NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c)#define NLOHMANN_JSON_ABI_TAGS                                       \    NLOHMANN_JSON_ABI_TAGS_CONCAT(                                   \            NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS,                       \            NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \            NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS)// Construct the namespace version component#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \    _v ## major ## _ ## minor ## _ ## patch#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \    NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)#if NLOHMANN_JSON_NAMESPACE_NO_VERSION#define NLOHMANN_JSON_NAMESPACE_VERSION#else#define NLOHMANN_JSON_NAMESPACE_VERSION                                 \    NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \                                           NLOHMANN_JSON_VERSION_MINOR, \                                           NLOHMANN_JSON_VERSION_PATCH)#endif// Combine namespace components#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \    NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)#ifndef NLOHMANN_JSON_NAMESPACE#define NLOHMANN_JSON_NAMESPACE               \    nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \            NLOHMANN_JSON_ABI_TAGS,           \            NLOHMANN_JSON_NAMESPACE_VERSION)#endif#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN#define NLOHMANN_JSON_NAMESPACE_BEGIN                \    namespace nlohmann                               \    {                                                \    inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \                NLOHMANN_JSON_ABI_TAGS,              \                NLOHMANN_JSON_NAMESPACE_VERSION)     \    {#endif#ifndef NLOHMANN_JSON_NAMESPACE_END#define NLOHMANN_JSON_NAMESPACE_END                                     \    }  /* namespace (inline namespace) NOLINT(readability/namespace) */ \    }  // namespace nlohmann#endif
 |