RflySimSDK v4.10
RflySimSDK说明文档
载入中...
搜索中...
未找到
abi_macros.hpp
1// __ _____ _____ _____
2// __| | __| | | | JSON for Modern C++
3// | | |__ | | | | | | version 3.12.0
4// |_____|_____|_____|_|___| https://github.com/nlohmann/json
5//
6// SPDX-FileCopyrightText: 2013-2025 Niels Lohmann <https://nlohmann.me>
7// SPDX-License-Identifier: MIT
8
9#pragma once
10
11// This file contains all macro definitions affecting or depending on the ABI
12
13#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
14 #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
15 #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0
16 #warning "Already included a different version of the library!"
17 #endif
18 #endif
19#endif
20
21#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
22#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum)
23#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum)
24
25#ifndef JSON_DIAGNOSTICS
26 #define JSON_DIAGNOSTICS 0
27#endif
28
29#ifndef JSON_DIAGNOSTIC_POSITIONS
30 #define JSON_DIAGNOSTIC_POSITIONS 0
31#endif
32
33#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
34 #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
35#endif
36
37#if JSON_DIAGNOSTICS
38 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
39#else
40 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
41#endif
42
43#if JSON_DIAGNOSTIC_POSITIONS
44 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp
45#else
46 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS
47#endif
48
49#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
50 #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
51#else
52 #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
53#endif
54
55#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
56 #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
57#endif
58
59// Construct the namespace ABI tags component
60#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c
61#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \
62 NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c)
63
64#define NLOHMANN_JSON_ABI_TAGS \
65 NLOHMANN_JSON_ABI_TAGS_CONCAT( \
66 NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
67 NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \
68 NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS)
69
70// Construct the namespace version component
71#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
72 _v ## major ## _ ## minor ## _ ## patch
73#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
74 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
75
76#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
77#define NLOHMANN_JSON_NAMESPACE_VERSION
78#else
79#define NLOHMANN_JSON_NAMESPACE_VERSION \
80 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
81 NLOHMANN_JSON_VERSION_MINOR, \
82 NLOHMANN_JSON_VERSION_PATCH)
83#endif
84
85// Combine namespace components
86#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
87#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
88 NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
89
90#ifndef NLOHMANN_JSON_NAMESPACE
91#define NLOHMANN_JSON_NAMESPACE \
92 nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
93 NLOHMANN_JSON_ABI_TAGS, \
94 NLOHMANN_JSON_NAMESPACE_VERSION)
95#endif
96
97#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
98#define NLOHMANN_JSON_NAMESPACE_BEGIN \
99 namespace nlohmann \
100 { \
101 inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
102 NLOHMANN_JSON_ABI_TAGS, \
103 NLOHMANN_JSON_NAMESPACE_VERSION) \
104 {
105#endif
106
107#ifndef NLOHMANN_JSON_NAMESPACE_END
108#define NLOHMANN_JSON_NAMESPACE_END \
109 } /* namespace (inline namespace) NOLINT(readability/namespace) */ \
110 } // namespace nlohmann
111#endif