Skip to content

Commit b2d9ce4

Browse files
authored
Add nholmann activation script
1 parent 05a852f commit b2d9ce4

File tree

1 file changed

+176
-0
lines changed

1 file changed

+176
-0
lines changed

nholman-activation.cpp

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
// __ _____ _____ _____
2+
// __| | __| | | | JSON for Modern C++
3+
// | | |__ | | | | | | version 3.11.2
4+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
5+
//
6+
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
7+
// SPDX-License-Identifier: MIT
8+
9+
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
10+
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
11+
12+
#include <cstdint> // int64_t, uint64_t
13+
#include <map> // map
14+
#include <memory> // allocator
15+
#include <string> // string
16+
#include <vector> // vector
17+
18+
// #include <nlohmann/detail/abi_macros.hpp>
19+
// __ _____ _____ _____
20+
// __| | __| | | | JSON for Modern C++
21+
// | | |__ | | | | | | version 3.11.2
22+
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
23+
//
24+
// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>
25+
// SPDX-License-Identifier: MIT
26+
27+
28+
29+
// This file contains all macro definitions affecting or depending on the ABI
30+
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!"
35+
#endif
36+
#endif
37+
#endif
38+
39+
#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
40+
#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)
41+
#define NLOHMANN_JSON_VERSION_PATCH 2 // NOLINT(modernize-macro-to-enum)
42+
43+
#ifndef JSON_DIAGNOSTICS
44+
#define JSON_DIAGNOSTICS 0
45+
#endif
46+
47+
#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
48+
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
49+
#endif
50+
51+
#if JSON_DIAGNOSTICS
52+
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
53+
#else
54+
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
55+
#endif
56+
57+
#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
58+
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
59+
#else
60+
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
61+
#endif
62+
63+
#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
64+
#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
65+
#endif
66+
67+
// Construct the namespace ABI tags component
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)
71+
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)
76+
77+
// Construct the namespace version component
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)
82+
83+
#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
84+
#define NLOHMANN_JSON_NAMESPACE_VERSION
85+
#else
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)
90+
#endif
91+
92+
// Combine namespace components
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)
96+
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)
102+
#endif
103+
104+
#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
105+
#define NLOHMANN_JSON_NAMESPACE_BEGIN \
106+
namespace nlohmann \
107+
{ \
108+
inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
109+
NLOHMANN_JSON_ABI_TAGS, \
110+
NLOHMANN_JSON_NAMESPACE_VERSION) \
111+
{
112+
#endif
113+
114+
#ifndef NLOHMANN_JSON_NAMESPACE_END
115+
#define NLOHMANN_JSON_NAMESPACE_END \
116+
} /* namespace (inline namespace) NOLINT(readability/namespace) */ \
117+
} // namespace nlohmann
118+
#endif
119+
120+
121+
/*!
122+
@brief namespace for Niels Lohmann
123+
@see https://github.com/nlohmann
124+
@since version 1.0.0
125+
*/
126+
NLOHMANN_JSON_NAMESPACE_BEGIN
127+
128+
/*!
129+
@brief default JSONSerializer template argument
130+
131+
This serializer ignores the template arguments and uses ADL
132+
([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
133+
for serialization.
134+
*/
135+
template<typename T = void, typename SFINAE = void>
136+
struct adl_serializer;
137+
138+
/// a class to store JSON values
139+
/// @sa https://json.nlohmann.me/api/basic_json/
140+
template<template<typename U, typename V, typename... Args> class ObjectType =
141+
std::map,
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 =
149+
adl_serializer,
150+
class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError
151+
class CustomBaseClass = void>
152+
class basic_json;
153+
154+
/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
155+
/// @sa https://json.nlohmann.me/api/json_pointer/
156+
template<typename RefStringType>
157+
class json_pointer;
158+
159+
/*!
160+
@brief default specialization
161+
@sa https://json.nlohmann.me/api/json/
162+
*/
163+
using json = basic_json<>;
164+
165+
/// @brief a minimal map-like container that preserves insertion order
166+
/// @sa https://json.nlohmann.me/api/ordered_map/
167+
template<class Key, class T, class IgnoredLess, class Allocator>
168+
struct ordered_map;
169+
170+
/// @brief specialization that maintains the insertion order of object keys
171+
/// @sa https://json.nlohmann.me/api/ordered_json/
172+
using ordered_json = basic_json<nlohmann::ordered_map>;
173+
174+
NLOHMANN_JSON_NAMESPACE_END
175+
176+
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_

0 commit comments

Comments
 (0)