Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/nlohmann/detail/abi_macros.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 //     __ _____ _____ _____
0002 //  __|  |   __|     |   | |  JSON for Modern C++
0003 // |  |  |__   |  |  | | | |  version 3.11.3
0004 // |_____|_____|_____|_|___|  https://github.com/nlohmann/json
0005 //
0006 // SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
0007 // SPDX-License-Identifier: MIT
0008 
0009 #pragma once
0010 
0011 // This file contains all macro definitions affecting or depending on the ABI
0012 
0013 #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
0014     #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
0015         #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3
0016             #warning "Already included a different version of the library!"
0017         #endif
0018     #endif
0019 #endif
0020 
0021 #define NLOHMANN_JSON_VERSION_MAJOR 3   // NOLINT(modernize-macro-to-enum)
0022 #define NLOHMANN_JSON_VERSION_MINOR 11  // NOLINT(modernize-macro-to-enum)
0023 #define NLOHMANN_JSON_VERSION_PATCH 3   // NOLINT(modernize-macro-to-enum)
0024 
0025 #ifndef JSON_DIAGNOSTICS
0026     #define JSON_DIAGNOSTICS 0
0027 #endif
0028 
0029 #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
0030     #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
0031 #endif
0032 
0033 #if JSON_DIAGNOSTICS
0034     #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
0035 #else
0036     #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
0037 #endif
0038 
0039 #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
0040     #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
0041 #else
0042     #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
0043 #endif
0044 
0045 #ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
0046     #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
0047 #endif
0048 
0049 // Construct the namespace ABI tags component
0050 #define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
0051 #define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
0052     NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
0053 
0054 #define NLOHMANN_JSON_ABI_TAGS                                       \
0055     NLOHMANN_JSON_ABI_TAGS_CONCAT(                                   \
0056             NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS,                       \
0057             NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
0058 
0059 // Construct the namespace version component
0060 #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
0061     _v ## major ## _ ## minor ## _ ## patch
0062 #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
0063     NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
0064 
0065 #if NLOHMANN_JSON_NAMESPACE_NO_VERSION
0066 #define NLOHMANN_JSON_NAMESPACE_VERSION
0067 #else
0068 #define NLOHMANN_JSON_NAMESPACE_VERSION                                 \
0069     NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
0070                                            NLOHMANN_JSON_VERSION_MINOR, \
0071                                            NLOHMANN_JSON_VERSION_PATCH)
0072 #endif
0073 
0074 // Combine namespace components
0075 #define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
0076 #define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
0077     NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
0078 
0079 #ifndef NLOHMANN_JSON_NAMESPACE
0080 #define NLOHMANN_JSON_NAMESPACE               \
0081     nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
0082             NLOHMANN_JSON_ABI_TAGS,           \
0083             NLOHMANN_JSON_NAMESPACE_VERSION)
0084 #endif
0085 
0086 #ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
0087 #define NLOHMANN_JSON_NAMESPACE_BEGIN                \
0088     namespace nlohmann                               \
0089     {                                                \
0090     inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
0091                 NLOHMANN_JSON_ABI_TAGS,              \
0092                 NLOHMANN_JSON_NAMESPACE_VERSION)     \
0093     {
0094 #endif
0095 
0096 #ifndef NLOHMANN_JSON_NAMESPACE_END
0097 #define NLOHMANN_JSON_NAMESPACE_END                                     \
0098     }  /* namespace (inline namespace) NOLINT(readability/namespace) */ \
0099     }  // namespace nlohmann
0100 #endif