-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Amalgamate the forward declaration header
- Loading branch information
1 parent
9e1a7c8
commit c733401
Showing
5 changed files
with
194 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,154 @@ | ||
// __ _____ _____ _____ | ||
// __| | __| | | | JSON for Modern C++ | ||
// | | |__ | | | | | | version 3.11.1 | ||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json | ||
// | ||
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me> | ||
// SPDX-License-Identifier: MIT | ||
|
||
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ | ||
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_ | ||
|
||
#include <cstdint> // int64_t, uint64_t | ||
#include <map> // map | ||
#include <memory> // allocator | ||
#include <string> // string | ||
#include <vector> // vector | ||
|
||
// #include <nlohmann/detail/abi_macros.hpp> | ||
// __ _____ _____ _____ | ||
// __| | __| | | | JSON for Modern C++ | ||
// | | |__ | | | | | | version 3.11.1 | ||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json | ||
// | ||
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me> | ||
// SPDX-License-Identifier: MIT | ||
|
||
|
||
|
||
// This file contains all macro definitions affecting or depending on the ABI | ||
|
||
#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK | ||
#if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) | ||
#if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 1 | ||
#warning "Already included a different version of the library!" | ||
#endif | ||
#endif | ||
#endif | ||
|
||
#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) | ||
#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) | ||
#define NLOHMANN_JSON_VERSION_PATCH 1 // NOLINT(modernize-macro-to-enum) | ||
|
||
#ifndef JSON_DIAGNOSTICS | ||
#define JSON_DIAGNOSTICS 0 | ||
#endif | ||
|
||
#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON | ||
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 | ||
#endif | ||
|
||
#if JSON_DIAGNOSTICS | ||
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag | ||
#else | ||
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS | ||
#endif | ||
|
||
#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON | ||
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp | ||
#else | ||
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON | ||
#endif | ||
|
||
#define NLOHMANN_JSON_ABI_PREFIX_EX(major, minor, patch) \ | ||
json_v ## major ## _ ## minor ## _ ## patch | ||
#define NLOHMANN_JSON_ABI_PREFIX(major, minor, patch) \ | ||
NLOHMANN_JSON_ABI_PREFIX_EX(major, minor, patch) | ||
|
||
#define NLOHMANN_JSON_ABI_CONCAT_EX(a, b, c) a ## b ## c | ||
#define NLOHMANN_JSON_ABI_CONCAT(a, b, c) \ | ||
NLOHMANN_JSON_ABI_CONCAT_EX(a, b, c) | ||
|
||
#define NLOHMANN_JSON_ABI_STRING \ | ||
NLOHMANN_JSON_ABI_CONCAT( \ | ||
NLOHMANN_JSON_ABI_PREFIX( \ | ||
NLOHMANN_JSON_VERSION_MAJOR, \ | ||
NLOHMANN_JSON_VERSION_MINOR, \ | ||
NLOHMANN_JSON_VERSION_PATCH), \ | ||
NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ | ||
NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) | ||
|
||
#ifndef NLOHMANN_JSON_NAMESPACE | ||
#define NLOHMANN_JSON_NAMESPACE nlohmann::NLOHMANN_JSON_ABI_STRING | ||
#endif | ||
|
||
#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN | ||
#define NLOHMANN_JSON_NAMESPACE_BEGIN \ | ||
namespace nlohmann \ | ||
{ \ | ||
inline namespace NLOHMANN_JSON_ABI_STRING \ | ||
{ | ||
#endif | ||
|
||
#ifndef NLOHMANN_JSON_NAMESPACE_END | ||
#define NLOHMANN_JSON_NAMESPACE_END \ | ||
} /* namespace (abi_string) */ \ | ||
} /* namespace nlohmann */ | ||
#endif | ||
|
||
|
||
/*! | ||
@brief namespace for Niels Lohmann | ||
@see https://github.com/nlohmann | ||
@since version 1.0.0 | ||
*/ | ||
NLOHMANN_JSON_NAMESPACE_BEGIN | ||
|
||
/*! | ||
@brief default JSONSerializer template argument | ||
This serializer ignores the template arguments and uses ADL | ||
([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) | ||
for serialization. | ||
*/ | ||
template<typename T = void, typename SFINAE = void> | ||
struct adl_serializer; | ||
|
||
/// a class to store JSON values | ||
/// @sa https://json.nlohmann.me/api/basic_json/ | ||
template<template<typename U, typename V, typename... Args> class ObjectType = | ||
std::map, | ||
template<typename U, typename... Args> class ArrayType = std::vector, | ||
class StringType = std::string, class BooleanType = bool, | ||
class NumberIntegerType = std::int64_t, | ||
class NumberUnsignedType = std::uint64_t, | ||
class NumberFloatType = double, | ||
template<typename U> class AllocatorType = std::allocator, | ||
template<typename T, typename SFINAE = void> class JSONSerializer = | ||
adl_serializer, | ||
class BinaryType = std::vector<std::uint8_t>> | ||
class basic_json; | ||
|
||
/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document | ||
/// @sa https://json.nlohmann.me/api/json_pointer/ | ||
template<typename RefStringType> | ||
class json_pointer; | ||
|
||
/*! | ||
@brief default specialization | ||
@sa https://json.nlohmann.me/api/json/ | ||
*/ | ||
using json = basic_json<>; | ||
|
||
/// @brief a minimal map-like container that preserves insertion order | ||
/// @sa https://json.nlohmann.me/api/ordered_map/ | ||
template<class Key, class T, class IgnoredLess, class Allocator> | ||
struct ordered_map; | ||
|
||
/// @brief specialization that maintains the insertion order of object keys | ||
/// @sa https://json.nlohmann.me/api/ordered_json/ | ||
using ordered_json = basic_json<nlohmann::ordered_map>; | ||
|
||
NLOHMANN_JSON_NAMESPACE_END | ||
|
||
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"project": "JSON for Modern C++", | ||
"target": "single_include/nlohmann/json_fwd.hpp", | ||
"sources": [ | ||
"include/nlohmann/json_fwd.hpp" | ||
], | ||
"include_paths": ["include"] | ||
} |