1 #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
2 #define INCLUDE_NLOHMANN_JSON_FWD_HPP_
3 
4 #include <cstdint> // int64_t, uint64_t
5 #include <map> // map
6 #include <memory> // allocator
7 #include <string> // string
8 #include <vector> // vector
9 
10 /*!
11 @brief namespace for Niels Lohmann
12 @see https://github.com/nlohmann
13 @since version 1.0.0
14 */
15 namespace nlohmann
16 {
17 /*!
18 @brief default JSONSerializer template argument
19 This serializer ignores the template arguments and uses ADL
20 ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
21 for serialization.
22 */
23 template<typename T = void, typename SFINAE = void>
24 struct adl_serializer;
25 
26 template<template<typename U, typename V, typename... Args> class ObjectType =
27          std::map,
28          template<typename U, typename... Args> class ArrayType = std::vector,
29          class StringType = std::string, class BooleanType = bool,
30          class NumberIntegerType = std::int64_t,
31          class NumberUnsignedType = std::uint64_t,
32          class NumberFloatType = double,
33          template<typename U> class AllocatorType = std::allocator,
34          template<typename T, typename SFINAE = void> class JSONSerializer =
35          adl_serializer>
36 class basic_json;
37 
38 /*!
39 @brief JSON Pointer
40 A JSON pointer defines a string syntax for identifying a specific value
41 within a JSON document. It can be used with functions `at` and
42 `operator[]`. Furthermore, JSON pointers are the base for JSON patches.
43 @sa [RFC 6901](https://tools.ietf.org/html/rfc6901)
44 @since version 2.0.0
45 */
46 template<typename BasicJsonType>
47 class json_pointer;
48 
49 /*!
50 @brief default JSON class
51 This type is the default specialization of the @ref basic_json class which
52 uses the standard template types.
53 @since version 1.0.0
54 */
55 using json = basic_json<>;
56 }  // namespace nlohmann
57 
58 #endif
59 
60 namespace NL = nlohmann;
61 
62