• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
20 This serializer ignores the template arguments and uses ADL
21 ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
22 for serialization.
23 */
24 template<typename T = void, typename SFINAE = void>
25 struct adl_serializer;
26 
27 template<template<typename U, typename V, typename... Args> class ObjectType =
28          std::map,
29          template<typename U, typename... Args> class ArrayType = std::vector,
30          class StringType = std::string, class BooleanType = bool,
31          class NumberIntegerType = std::int64_t,
32          class NumberUnsignedType = std::uint64_t,
33          class NumberFloatType = double,
34          template<typename U> class AllocatorType = std::allocator,
35          template<typename T, typename SFINAE = void> class JSONSerializer =
36          adl_serializer,
37          class BinaryType = std::vector<std::uint8_t>>
38 class basic_json;
39 
40 /*!
41 @brief JSON Pointer
42 
43 A JSON pointer defines a string syntax for identifying a specific value
44 within a JSON document. It can be used with functions `at` and
45 `operator[]`. Furthermore, JSON pointers are the base for JSON patches.
46 
47 @sa [RFC 6901](https://tools.ietf.org/html/rfc6901)
48 
49 @since version 2.0.0
50 */
51 template<typename BasicJsonType>
52 class json_pointer;
53 
54 /*!
55 @brief default JSON class
56 
57 This type is the default specialization of the @ref basic_json class which
58 uses the standard template types.
59 
60 @since version 1.0.0
61 */
62 using json = basic_json<>;
63 
64 template<class Key, class T, class IgnoredLess, class Allocator>
65 struct ordered_map;
66 
67 /*!
68 @brief ordered JSON class
69 
70 This type preserves the insertion order of object keys.
71 
72 @since version 3.9.0
73 */
74 using ordered_json = basic_json<nlohmann::ordered_map>;
75 
76 }  // namespace nlohmann
77 
78 #endif  // INCLUDE_NLOHMANN_JSON_FWD_HPP_
79