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