Path: blob/a-new-beginning/SharedDependencies/Sources/nlohmann/include/json_fwd.hpp
2 views
// __ _____ _____ _____1// __| | __| | | | JSON for Modern C++2// | | |__ | | | | | | version 3.11.33// |_____|_____|_____|_|___| https://github.com/nlohmann/json4//5// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>6// SPDX-License-Identifier: MIT78#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_9#define INCLUDE_NLOHMANN_JSON_FWD_HPP_1011#include <cstdint> // int64_t, uint64_t12#include <map> // map13#include <memory> // allocator14#include <string> // string15#include <vector> // vector1617// #include <nlohmann/detail/abi_macros.hpp>18// __ _____ _____ _____19// __| | __| | | | JSON for Modern C++20// | | |__ | | | | | | version 3.11.321// |_____|_____|_____|_|___| https://github.com/nlohmann/json22//23// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>24// SPDX-License-Identifier: MIT25262728// This file contains all macro definitions affecting or depending on the ABI2930#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK31#if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)32#if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 333#warning "Already included a different version of the library!"34#endif35#endif36#endif3738#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)39#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)40#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum)4142#ifndef JSON_DIAGNOSTICS43#define JSON_DIAGNOSTICS 044#endif4546#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON47#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 048#endif4950#if JSON_DIAGNOSTICS51#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag52#else53#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS54#endif5556#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON57#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp58#else59#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON60#endif6162#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION63#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 064#endif6566// Construct the namespace ABI tags component67#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b68#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \69NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)7071#define NLOHMANN_JSON_ABI_TAGS \72NLOHMANN_JSON_ABI_TAGS_CONCAT( \73NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \74NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)7576// Construct the namespace version component77#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \78_v ## major ## _ ## minor ## _ ## patch79#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \80NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)8182#if NLOHMANN_JSON_NAMESPACE_NO_VERSION83#define NLOHMANN_JSON_NAMESPACE_VERSION84#else85#define NLOHMANN_JSON_NAMESPACE_VERSION \86NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \87NLOHMANN_JSON_VERSION_MINOR, \88NLOHMANN_JSON_VERSION_PATCH)89#endif9091// Combine namespace components92#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b93#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \94NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)9596#ifndef NLOHMANN_JSON_NAMESPACE97#define NLOHMANN_JSON_NAMESPACE \98nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \99NLOHMANN_JSON_ABI_TAGS, \100NLOHMANN_JSON_NAMESPACE_VERSION)101#endif102103#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN104#define NLOHMANN_JSON_NAMESPACE_BEGIN \105namespace nlohmann \106{ \107inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \108NLOHMANN_JSON_ABI_TAGS, \109NLOHMANN_JSON_NAMESPACE_VERSION) \110{111#endif112113#ifndef NLOHMANN_JSON_NAMESPACE_END114#define NLOHMANN_JSON_NAMESPACE_END \115} /* namespace (inline namespace) NOLINT(readability/namespace) */ \116} // namespace nlohmann117#endif118119120/*!121@brief namespace for Niels Lohmann122@see https://github.com/nlohmann123@since version 1.0.0124*/125NLOHMANN_JSON_NAMESPACE_BEGIN126127/*!128@brief default JSONSerializer template argument129130This serializer ignores the template arguments and uses ADL131([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))132for serialization.133*/134template<typename T = void, typename SFINAE = void>135struct adl_serializer;136137/// a class to store JSON values138/// @sa https://json.nlohmann.me/api/basic_json/139template<template<typename U, typename V, typename... Args> class ObjectType =140std::map,141template<typename U, typename... Args> class ArrayType = std::vector,142class StringType = std::string, class BooleanType = bool,143class NumberIntegerType = std::int64_t,144class NumberUnsignedType = std::uint64_t,145class NumberFloatType = double,146template<typename U> class AllocatorType = std::allocator,147template<typename T, typename SFINAE = void> class JSONSerializer =148adl_serializer,149class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError150class CustomBaseClass = void>151class basic_json;152153/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document154/// @sa https://json.nlohmann.me/api/json_pointer/155template<typename RefStringType>156class json_pointer;157158/*!159@brief default specialization160@sa https://json.nlohmann.me/api/json/161*/162using json = basic_json<>;163164/// @brief a minimal map-like container that preserves insertion order165/// @sa https://json.nlohmann.me/api/ordered_map/166template<class Key, class T, class IgnoredLess, class Allocator>167struct ordered_map;168169/// @brief specialization that maintains the insertion order of object keys170/// @sa https://json.nlohmann.me/api/ordered_json/171using ordered_json = basic_json<nlohmann::ordered_map>;172173NLOHMANN_JSON_NAMESPACE_END174175#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_176177178