9#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
10#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
31#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
32 #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
33 #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 2
34 #warning "Already included a different version of the library!"
39#define NLOHMANN_JSON_VERSION_MAJOR 3
40#define NLOHMANN_JSON_VERSION_MINOR 11
41#define NLOHMANN_JSON_VERSION_PATCH 2
43#ifndef JSON_DIAGNOSTICS
44 #define JSON_DIAGNOSTICS 0
47#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
48 #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
52 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
54 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
57#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
58 #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
60 #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
63#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
64 #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
68#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
69#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
70 NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
72#define NLOHMANN_JSON_ABI_TAGS \
73 NLOHMANN_JSON_ABI_TAGS_CONCAT( \
74 NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
75 NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
78#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
79 _v ## major ## _ ## minor ## _ ## patch
80#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
81 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
83#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
84#define NLOHMANN_JSON_NAMESPACE_VERSION
86#define NLOHMANN_JSON_NAMESPACE_VERSION \
87 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
88 NLOHMANN_JSON_VERSION_MINOR, \
89 NLOHMANN_JSON_VERSION_PATCH)
93#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
94#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
95 NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
97#ifndef NLOHMANN_JSON_NAMESPACE
98#define NLOHMANN_JSON_NAMESPACE \
99 nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
100 NLOHMANN_JSON_ABI_TAGS, \
101 NLOHMANN_JSON_NAMESPACE_VERSION)
104#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
105#define NLOHMANN_JSON_NAMESPACE_BEGIN \
108 inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
109 NLOHMANN_JSON_ABI_TAGS, \
110 NLOHMANN_JSON_NAMESPACE_VERSION) \
114#ifndef NLOHMANN_JSON_NAMESPACE_END
115#define NLOHMANN_JSON_NAMESPACE_END \
135template<
typename T =
void,
typename SFINAE =
void>
140template<
template<
typename U,
typename V,
typename... Args>
class ObjectType =
142 template<
typename U,
typename... Args>
class ArrayType = std::vector,
143 class StringType = std::string,
class BooleanType = bool,
144 class NumberIntegerType = std::int64_t,
145 class NumberUnsignedType = std::uint64_t,
146 class NumberFloatType = double,
147 template<
typename U>
class AllocatorType = std::allocator,
148 template<
typename T,
typename SFINAE =
void>
class JSONSerializer =
150 class BinaryType = std::vector<std::uint8_t>,
151 class CustomBaseClass =
void>
156template<
typename RefStringType>
167template<
class Key,
class T,
class IgnoredLess,
class Allocator>
namespace for Niels Lohmann
JSON Pointer defines a string syntax for identifying a specific value within a JSON document.
basic_json< nlohmann::ordered_map > ordered_json
specialization that maintains the insertion order of object keys
basic_json<> json
default specialization
#define NLOHMANN_JSON_NAMESPACE_END
#define NLOHMANN_JSON_NAMESPACE_BEGIN
namespace for Niels Lohmann
a minimal map-like container that preserves insertion order