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