9#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
10#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
29#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
30#if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && \
31 defined(NLOHMANN_JSON_VERSION_PATCH)
32#if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || \
33 NLOHMANN_JSON_VERSION_PATCH != 3
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 3
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) NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
71#define NLOHMANN_JSON_ABI_TAGS \
72 NLOHMANN_JSON_ABI_TAGS_CONCAT(NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
73 NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
76#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) _v##major##_##minor##_##patch
77#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
78 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
80#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
81#define NLOHMANN_JSON_NAMESPACE_VERSION
83#define NLOHMANN_JSON_NAMESPACE_VERSION \
84 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, \
85 NLOHMANN_JSON_VERSION_PATCH)
89#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a##b
90#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
92#ifndef NLOHMANN_JSON_NAMESPACE
93#define NLOHMANN_JSON_NAMESPACE \
94 nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT(NLOHMANN_JSON_ABI_TAGS, NLOHMANN_JSON_NAMESPACE_VERSION)
97#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
98#define NLOHMANN_JSON_NAMESPACE_BEGIN \
99 namespace nlohmann { \
100 inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT(NLOHMANN_JSON_ABI_TAGS, \
101 NLOHMANN_JSON_NAMESPACE_VERSION) {
104#ifndef NLOHMANN_JSON_NAMESPACE_END
105#define NLOHMANN_JSON_NAMESPACE_END \
124template <
typename T =
void,
typename SFINAE =
void>
129template <
template <
typename U,
typename V,
typename... Args>
class ObjectType = std::map,
130 template <
typename U,
typename... Args>
class ArrayType = std::vector,
131 class StringType = std::string,
class BooleanType = bool,
132 class NumberIntegerType = std::int64_t,
class NumberUnsignedType = std::uint64_t,
133 class NumberFloatType = double,
134 template <
typename U>
class AllocatorType = std::allocator,
135 template <
typename T,
typename SFINAE =
void>
class JSONSerializer =
adl_serializer,
136 class BinaryType = std::vector<std::uint8_t>,
137 class CustomBaseClass =
void>
143template <
typename RefStringType>
154template <
class Key,
class T,
class IgnoredLess,
class Allocator>
namespace for Niels Lohmann
Definition json.h:19402
JSON Pointer defines a string syntax for identifying a specific value within a JSON document.
Definition json.h:13842
basic_json< nlohmann::ordered_map > ordered_json
specialization that maintains the insertion order of object keys
Definition json.h:3431
basic_json<> json
default specialization
Definition json.h:3422
#define NLOHMANN_JSON_NAMESPACE_END
Definition json_fwd.h:105
#define NLOHMANN_JSON_NAMESPACE_BEGIN
Definition json_fwd.h:98
namespace for Niels Lohmann
Definition json.h:5834
a minimal map-like container that preserves insertion order
Definition json.h:19035