json.hpp File Reference
`#include <algorithm>`
`#include <cassert>`
`#include <ciso646>`
`#include <cstddef>`
`#include <functional>`
`#include <initializer_list>`
`#include <iosfwd>`
`#include <iterator>`
`#include <memory>`
`#include <numeric>`
`#include <string>`
`#include <utility>`
`#include <vector>`
`#include <array>`
`#include <forward_list>`
`#include <map>`
`#include <tuple>`
`#include <type_traits>`
`#include <unordered_map>`
`#include <valarray>`
`#include <exception>`
`#include <stdexcept>`
`#include <cstdlib>`
`#include <limits>`
`#include <cstdint>`
`#include <cmath>`
`#include <cstdio>`
`#include <cstring>`
`#include <istream>`
`#include <clocale>`
`#include <cctype>`
`#include <ios>`
`#include <ostream>`
Include dependency graph for json.hpp:

Go to the source code of this file.

## Classes

struct | nlohmann::detail::position_t
| struct to capture the start position of the current token More...
class | nlohmann::detail::exception
| general exception of the basic_json class More...
class | nlohmann::detail::parse_error
| exception indicating a parse error More...
class | nlohmann::detail::invalid_iterator
| exception indicating errors with iterators More...
class | nlohmann::detail::type_error
| exception indicating executing a member function with a wrong type More...
class | nlohmann::detail::out_of_range
| exception indicating access out of the defined range More...
class | nlohmann::detail::other_error
| exception indicating other library errors More...
struct | nlohmann::detail::index_sequence< Ints >
struct | nlohmann::detail::merge_and_renumber< Sequence1, Sequence2 >
struct | nlohmann::detail::merge_and_renumber< index_sequence< I1... >, index_sequence< I2... > >
struct | nlohmann::detail::make_index_sequence< N >
struct | nlohmann::detail::make_index_sequence< 0 >
struct | nlohmann::detail::make_index_sequence< 1 >
struct | nlohmann::detail::priority_tag< N >
struct | nlohmann::detail::priority_tag< 0 >
struct | nlohmann::detail::static_const< T >
struct | nlohmann::detail::make_void< Ts >
struct | nlohmann::detail::iterator_types< It, typename >
struct | nlohmann::detail::iterator_types< It, void_t< typename It::difference_type, typename It::value_type, typename It::pointer, typename It::reference, typename It::iterator_category > >
struct | nlohmann::detail::iterator_traits< T, typename >
struct | nlohmann::detail::iterator_traits< T, enable_if_t< !std::is_pointer< T >::value > >
struct | nlohmann::detail::iterator_traits< T *, enable_if_t< std::is_object< T >::value > >
struct | nlohmann::detail::nonesuch
struct | nlohmann::detail::detector< Default, AlwaysVoid, Op, Args >
struct | nlohmann::detail::detector< Default, void_t< Op< Args... > >, Op, Args... >
struct | nlohmann::adl_serializer< typename, typename >
| default JSONSerializer template argument More...
class | nlohmann::basic_json
| a class to store JSON values More...
class | nlohmann::json_pointer< BasicJsonType >
| JSON Pointer. More...
struct | nlohmann::detail::is_basic_json< typename >
struct | nlohmann::detail::is_basic_json< NLOHMANN_BASIC_JSON_TPL >
struct | nlohmann::detail::has_from_json< BasicJsonType, T, typename >
struct | nlohmann::detail::has_from_json< BasicJsonType, T, enable_if_t< not is_basic_json< T >::value > >
struct | nlohmann::detail::has_non_default_from_json< BasicJsonType, T, typename >
struct | nlohmann::detail::has_non_default_from_json< BasicJsonType, T, enable_if_t< not is_basic_json< T >::value > >
struct | nlohmann::detail::has_to_json< BasicJsonType, T, typename >
struct | nlohmann::detail::has_to_json< BasicJsonType, T, enable_if_t< not is_basic_json< T >::value > >
struct | nlohmann::detail::is_iterator_traits< T, typename >
struct | nlohmann::detail::is_iterator_traits< iterator_traits< T > >
struct | nlohmann::detail::is_complete_type< T, typename >
struct | nlohmann::detail::is_complete_type< T, decltype(void(sizeof(T)))>
struct | nlohmann::detail::is_compatible_object_type_impl< BasicJsonType, CompatibleObjectType, typename >
struct | nlohmann::detail::is_compatible_object_type_impl< BasicJsonType, CompatibleObjectType, enable_if_t< is_detected< mapped_type_t, CompatibleObjectType >::value and is_detected< key_type_t, CompatibleObjectType >::value > >
struct | nlohmann::detail::is_compatible_object_type< BasicJsonType, CompatibleObjectType >
struct | nlohmann::detail::is_constructible_object_type_impl< BasicJsonType, ConstructibleObjectType, typename >
struct | nlohmann::detail::is_constructible_object_type_impl< BasicJsonType, ConstructibleObjectType, enable_if_t< is_detected< mapped_type_t, ConstructibleObjectType >::value and is_detected< key_type_t, ConstructibleObjectType >::value > >
struct | nlohmann::detail::is_constructible_object_type< BasicJsonType, ConstructibleObjectType >
struct | nlohmann::detail::is_compatible_string_type_impl< BasicJsonType, CompatibleStringType, typename >
struct | nlohmann::detail::is_compatible_string_type_impl< BasicJsonType, CompatibleStringType, enable_if_t< is_detected_exact< typename BasicJsonType::string_t::value_type, value_type_t, CompatibleStringType >::value > >
struct | nlohmann::detail::is_compatible_string_type< BasicJsonType, ConstructibleStringType >
struct | nlohmann::detail::is_constructible_string_type_impl< BasicJsonType, ConstructibleStringType, typename >
struct | nlohmann::detail::is_constructible_string_type_impl< BasicJsonType, ConstructibleStringType, enable_if_t< is_detected_exact< typename BasicJsonType::string_t::value_type, value_type_t, ConstructibleStringType >::value > >
struct | nlohmann::detail::is_constructible_string_type< BasicJsonType, ConstructibleStringType >
struct | nlohmann::detail::is_compatible_array_type_impl< BasicJsonType, CompatibleArrayType, typename >
struct | nlohmann::detail::is_compatible_array_type_impl< BasicJsonType, CompatibleArrayType, enable_if_t< is_detected< value_type_t, CompatibleArrayType >::value and is_detected< iterator_t, CompatibleArrayType >::value and not is_iterator_traits< iterator_traits< CompatibleArrayType > >::value > >
struct | nlohmann::detail::is_compatible_array_type< BasicJsonType, CompatibleArrayType >
struct | nlohmann::detail::is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, typename >
struct | nlohmann::detail::is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, enable_if_t< std::is_same< ConstructibleArrayType, typename BasicJsonType::value_type >::value > >

struct

nlohmann::detail::is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, enable_if_t< not std::is_same< ConstructibleArrayType, typename BasicJsonType::value_type >::value and std::is_default_constructible< ConstructibleArrayType >::value and(std::is_move_assignable< ConstructibleArrayType >::value or std::is_copy_assignable< ConstructibleArrayType >::value) andis_detected< value_type_t, ConstructibleArrayType >::value andis_detected< iterator_t, ConstructibleArrayType >::value andis_complete_type< detected_t< value_type_t, ConstructibleArrayType > >::value > >

struct | nlohmann::detail::is_constructible_array_type< BasicJsonType, ConstructibleArrayType >
struct | nlohmann::detail::is_compatible_integer_type_impl< RealIntegerType, CompatibleNumberIntegerType, typename >
struct | nlohmann::detail::is_compatible_integer_type_impl< RealIntegerType, CompatibleNumberIntegerType, enable_if_t< std::is_integral< RealIntegerType >::value and std::is_integral< CompatibleNumberIntegerType >::value and not std::is_same< bool, CompatibleNumberIntegerType >::value > >
struct | nlohmann::detail::is_compatible_integer_type< RealIntegerType, CompatibleNumberIntegerType >
struct | nlohmann::detail::is_compatible_type_impl< BasicJsonType, CompatibleType, typename >
struct | nlohmann::detail::is_compatible_type_impl< BasicJsonType, CompatibleType, enable_if_t< is_complete_type< CompatibleType >::value > >
struct | nlohmann::detail::is_compatible_type< BasicJsonType, CompatibleType >
struct | nlohmann::detail::conjunction<... >
struct | nlohmann::detail::conjunction< B1 >
struct | nlohmann::detail::conjunction< B1, Bn... >
struct | nlohmann::detail::is_constructible_tuple< T1, T2 >
struct | nlohmann::detail::is_constructible_tuple< T1, std::tuple< Args... > >
struct | nlohmann::detail::from_json_fn
class | nlohmann::detail::iteration_proxy_value< IteratorType >
class | nlohmann::detail::iteration_proxy< IteratorType >
| proxy class for the items() function More...
class | std::tuple_size<::nlohmann::detail::iteration_proxy_value< IteratorType > >
class | std::tuple_element< N, ::nlohmann::detail::iteration_proxy_value< IteratorType > >
struct | nlohmann::detail::external_constructor< value_t >
struct | nlohmann::detail::external_constructor< value_t::boolean >
struct | nlohmann::detail::external_constructor< value_t::string >
struct | nlohmann::detail::external_constructor< value_t::number_float >
struct | nlohmann::detail::external_constructor< value_t::number_unsigned >
struct | nlohmann::detail::external_constructor< value_t::number_integer >
struct | nlohmann::detail::external_constructor< value_t::array >
struct | nlohmann::detail::external_constructor< value_t::object >
struct | nlohmann::detail::to_json_fn
struct | nlohmann::adl_serializer< typename, typename >
| default JSONSerializer template argument More...
struct | nlohmann::detail::input_adapter_protocol
| abstract input adapter interface More...
class | nlohmann::detail::file_input_adapter
class | nlohmann::detail::input_stream_adapter
class | nlohmann::detail::input_buffer_adapter
| input adapter for buffer input More...
struct | nlohmann::detail::wide_string_input_helper< WideStringType, T >
struct | nlohmann::detail::wide_string_input_helper< WideStringType, 2 >
class | nlohmann::detail::wide_string_input_adapter< WideStringType >
class | nlohmann::detail::input_adapter
struct | nlohmann::json_sax< BasicJsonType >
| SAX interface. More...
class | nlohmann::detail::json_sax_dom_parser< BasicJsonType >
| SAX implementation to create a JSON value from SAX events. More...
class | nlohmann::detail::json_sax_dom_callback_parser< BasicJsonType >
class | nlohmann::detail::json_sax_acceptor< BasicJsonType >
struct | nlohmann::detail::is_sax< SAX, BasicJsonType >
struct | nlohmann::detail::is_sax_static_asserts< SAX, BasicJsonType >
class | nlohmann::detail::binary_reader< BasicJsonType, SAX >
| deserialization of CBOR, MessagePack, and UBJSON values More...
class | nlohmann::detail::lexer< BasicJsonType >
| lexical analysis More...
class | nlohmann::detail::parser< BasicJsonType >
| syntax analysis More...
class | nlohmann::detail::primitive_iterator_t
struct | nlohmann::detail::internal_iterator< BasicJsonType >
| an iterator value More...
class | nlohmann::detail::iteration_proxy< IteratorType >
| proxy class for the items() function More...
class | nlohmann::detail::iteration_proxy_value< IteratorType >
class | nlohmann::detail::iter_impl< BasicJsonType >
| a template for a bidirectional iterator for the basic_json class This class implements a both iterators (iterator and const_iterator) for the basic_json class. More...
class | nlohmann::detail::json_reverse_iterator< Base >
| a template for a reverse iterator class More...
class | nlohmann::json_pointer< BasicJsonType >
| JSON Pointer. More...
class | nlohmann::detail::json_ref< BasicJsonType >
struct | nlohmann::detail::output_adapter_protocol< CharType >
| abstract output adapter interface More...
class | nlohmann::detail::output_vector_adapter< CharType >
| output adapter for byte vectors More...
class | nlohmann::detail::output_stream_adapter< CharType >
| output adapter for output streams More...
class | nlohmann::detail::output_string_adapter< CharType, StringType >
| output adapter for basic_string More...
class | nlohmann::detail::output_adapter< CharType, StringType >
class | nlohmann::detail::binary_writer< BasicJsonType, CharType >
| serialization to CBOR and MessagePack values More...
struct | nlohmann::detail::dtoa_impl::diyfp
struct | nlohmann::detail::dtoa_impl::boundaries
struct | nlohmann::detail::dtoa_impl::cached_power
class | nlohmann::detail::serializer< BasicJsonType >
class | nlohmann::basic_json
| a class to store JSON values More...
struct | std::hash< nlohmann::json >
| hash value for JSON objects More...
struct | std::less<::nlohmann::detail::value_t >

## Namespaces

| nlohmann
| namespace for Niels Lohmann
| nlohmann::detail
| detail namespace with internal helper functions
| std
| nlohmann::detail::dtoa_impl
| implements the Grisu2 algorithm for binary to decimal floating-point conversion.

## Macros

#define | NLOHMANN_JSON_VERSION_MAJOR 3
#define | NLOHMANN_JSON_VERSION_MINOR 7
#define | NLOHMANN_JSON_VERSION_PATCH 3
#define | JSON_HEDLEY_VERSION 11
#define | JSON_HEDLEY_STRINGIFY_EX(x) #x
#define | JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x)
#define | JSON_HEDLEY_CONCAT_EX(a, b) a##b
#define | JSON_HEDLEY_CONCAT(a, b) JSON_HEDLEY_CONCAT_EX(a,b)
#define | JSON_HEDLEY_VERSION_ENCODE(major, minor, revision) (((major) * 1000000) + ((minor) * 1000) + (revision))
#define | JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000)
#define | JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000)
#define | JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000)
#define | JSON_HEDLEY_GNUC_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_MSVC_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_INTEL_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_PGI_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_SUNPRO_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_ARM_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_IBM_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_TI_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_CRAY_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_IAR_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_TINYC_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_DMC_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_COMPCERT_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_PELLES_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_GCC_VERSION_CHECK(major, minor, patch) (0)
#define | JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0)
#define | JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0)
#define | JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns, attribute) (0)
#define | JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_HAS_BUILTIN(builtin) (0)
#define | JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_BUILTIN(builtin, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_HAS_FEATURE(feature) (0)
#define | JSON_HEDLEY_GNUC_HAS_FEATURE(feature, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_FEATURE(feature, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_HAS_EXTENSION(extension) (0)
#define | JSON_HEDLEY_GNUC_HAS_EXTENSION(extension, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_EXTENSION(extension, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0)
#define | JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_HAS_WARNING(warning) (0)
#define | JSON_HEDLEY_GNUC_HAS_WARNING(warning, major, minor, patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_GCC_HAS_WARNING(warning, major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x
#define | JSON_HEDLEY_PRAGMA(value)
#define | JSON_HEDLEY_DIAGNOSTIC_PUSH
#define | JSON_HEDLEY_DIAGNOSTIC_POP
#define | JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
#define | JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
#define | JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
#define | JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL
#define | JSON_HEDLEY_DEPRECATED(since)
#define | JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
#define | JSON_HEDLEY_UNAVAILABLE(available_since)
#define | JSON_HEDLEY_WARN_UNUSED_RESULT
#define | JSON_HEDLEY_SENTINEL(position)
#define | JSON_HEDLEY_NO_RETURN
#define | JSON_HEDLEY_NO_ESCAPE
#define | JSON_HEDLEY_UNREACHABLE()
#define | JSON_HEDLEY_UNREACHABLE_RETURN(value) return value
#define | JSON_HEDLEY_ASSUME(expr) ((void) (expr))
#define | JSON_HEDLEY_NON_NULL(...)
#define | JSON_HEDLEY_PRINTF_FORMAT(string_idx, first_to_check)
#define | JSON_HEDLEY_CONSTEXPR
#define | JSON_HEDLEY_PREDICT(expr, expected, probability) (((void) (expected)), !!(expr))
#define | JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr))
#define | JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr))
#define | JSON_HEDLEY_LIKELY(expr) (!!(expr))
#define | JSON_HEDLEY_UNLIKELY(expr) (!!(expr))
#define | JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5)
#define | JSON_HEDLEY_MALLOC
#define | JSON_HEDLEY_PURE
#define | JSON_HEDLEY_CONST JSON_HEDLEY_PURE
#define | JSON_HEDLEY_RESTRICT
#define | JSON_HEDLEY_INLINE
#define | JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE
#define | JSON_HEDLEY_NEVER_INLINE
#define | JSON_HEDLEY_PRIVATE
#define | JSON_HEDLEY_PUBLIC
#define | JSON_HEDLEY_IMPORT extern
#define | JSON_HEDLEY_NO_THROW
#define | JSON_HEDLEY_FALL_THROUGH
#define | JSON_HEDLEY_RETURNS_NON_NULL
#define | JSON_HEDLEY_ARRAY_PARAM(name)
#define | JSON_HEDLEY_IS_CONSTANT(expr) (0)
#define | JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr)
#define | JSON_HEDLEY_BEGIN_C_DECLS
#define | JSON_HEDLEY_END_C_DECLS
#define | JSON_HEDLEY_C_DECL
#define | JSON_HEDLEY_STATIC_ASSERT(expr, message)
#define | JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr))
#define | JSON_HEDLEY_REINTERPRET_CAST(T, expr) (*((T*) &(expr)))
#define | JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr))
#define | JSON_HEDLEY_CPP_CAST(T, expr) (expr)
#define | JSON_HEDLEY_NULL ((void*) 0)
#define | JSON_HEDLEY_MESSAGE(msg)
#define | JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg)
#define | JSON_HEDLEY_REQUIRE(expr)
#define | JSON_HEDLEY_REQUIRE_MSG(expr, msg)
#define | JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr)
#define | JSON_HEDLEY_EMPTY_BASES
#define | JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major, minor, patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
#define | JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute)
#define | JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute)
#define | JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin)
#define | JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature)
#define | JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension)
#define | JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute)
#define | JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning)
#define | JSON_THROW(exception) std::abort()
#define | JSON_TRY if(true)
#define | JSON_CATCH(exception) if(false)
#define | JSON_INTERNAL_CATCH(exception) if(false)
#define | NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...)
| macro to briefly define a mapping between an enum and JSON More...
#define | NLOHMANN_BASIC_JSON_TPL_DECLARATION
#define | NLOHMANN_BASIC_JSON_TPL
#define | INCLUDE_NLOHMANN_JSON_FWD_HPP_

## Typedefs

template<bool B, typename T = void>
using | nlohmann::detail::enable_if_t = typename std::enable_if< B, T >::type
template<typename T >
using | nlohmann::detail::uncvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type
template<typename... Ts>
using | nlohmann::detail::index_sequence_for = make_index_sequence< sizeof...(Ts)>
template<typename ... Ts>
using | nlohmann::detail::void_t = typename make_void< Ts... >::type
template<template< class... > class Op, class... Args>
using | nlohmann::detail::is_detected = typename detector< nonesuch, void, Op, Args... >::value_t
template<template< class... > class Op, class... Args>
using | nlohmann::detail::detected_t = typename detector< nonesuch, void, Op, Args... >::type
template<class Default , template< class... > class Op, class... Args>
using | nlohmann::detail::detected_or = detector< Default, void, Op, Args... >
template<class Default , template< class... > class Op, class... Args>
using | nlohmann::detail::detected_or_t = typename detected_or< Default, Op, Args... >::type
template<class Expected , template< class... > class Op, class... Args>
using | nlohmann::detail::is_detected_exact = std::is_same< Expected, detected_t< Op, Args... > >
template<class To , template< class... > class Op, class... Args>
using | nlohmann::detail::is_detected_convertible = std::is_convertible< detected_t< Op, Args... >, To >
using | nlohmann::json = basic_json<>
| default JSON class More...
template<typename T >
using | nlohmann::detail::mapped_type_t = typename T::mapped_type
template<typename T >
using | nlohmann::detail::key_type_t = typename T::key_type
template<typename T >
using | nlohmann::detail::value_type_t = typename T::value_type
template<typename T >
using | nlohmann::detail::difference_type_t = typename T::difference_type
template<typename T >
using | nlohmann::detail::pointer_t = typename T::pointer
template<typename T >
using | nlohmann::detail::reference_t = typename T::reference
template<typename T >
using | nlohmann::detail::iterator_category_t = typename T::iterator_category
template<typename T >
using | nlohmann::detail::iterator_t = typename T::iterator
template<typename T , typename... Args>
using | nlohmann::detail::to_json_function = decltype(T::to_json(std::declval< Args >()...))
template<typename T , typename... Args>
using | nlohmann::detail::from_json_function = decltype(T::from_json(std::declval< Args >()...))
template<typename T , typename U >
using | nlohmann::detail::get_template_function = decltype(std::declval< T >().template get< U >())
using | nlohmann::detail::input_adapter_t = std::shared_ptr< input_adapter_protocol >
| a type to simplify interfaces More...
template<typename T >
using | nlohmann::detail::null_function_t = decltype(std::declval< T & >().null())
template<typename T >
using | nlohmann::detail::boolean_function_t = decltype(std::declval< T & >().boolean(std::declval< bool >()))
template<typename T , typename Integer >
using | nlohmann::detail::number_integer_function_t = decltype(std::declval< T & >().number_integer(std::declval< Integer >()))
template<typename T , typename Unsigned >
using | nlohmann::detail::number_unsigned_function_t = decltype(std::declval< T & >().number_unsigned(std::declval< Unsigned >()))
template<typename T , typename Float , typename String >
using | nlohmann::detail::number_float_function_t = decltype(std::declval< T & >().number_float(std::declval< Float >(), std::declval< const String & >()))
template<typename T , typename String >
using | nlohmann::detail::string_function_t = decltype(std::declval< T & >().string(std::declval< String & >()))
template<typename T >
using | nlohmann::detail::start_object_function_t = decltype(std::declval< T & >().start_object(std::declval< std::size_t >()))
template<typename T , typename String >
using | nlohmann::detail::key_function_t = decltype(std::declval< T & >().key(std::declval< String & >()))
template<typename T >
using | nlohmann::detail::end_object_function_t = decltype(std::declval< T & >().end_object())
template<typename T >
using | nlohmann::detail::start_array_function_t = decltype(std::declval< T & >().start_array(std::declval< std::size_t >()))
template<typename T >
using | nlohmann::detail::end_array_function_t = decltype(std::declval< T & >().end_array())
template<typename T , typename Exception >
using | nlohmann::detail::parse_error_function_t = decltype(std::declval< T & >().parse_error(std::declval< std::size_t >(), std::declval< const std::string & >(), std::declval< const Exception & >()))
template<typename CharType >
using | nlohmann::detail::output_adapter_t = std::shared_ptr< output_adapter_protocol< CharType > >
| a type to simplify interfaces More...

## Enumerations

enum

nlohmann::detail::value_t : std::uint8_t {
nlohmann::detail::value_t::null, nlohmann::detail::value_t::object, nlohmann::detail::value_t::array, nlohmann::detail::value_t::string,
nlohmann::detail::value_t::boolean, nlohmann::detail::value_t::number_integer, nlohmann::detail::value_t::number_unsigned, nlohmann::detail::value_t::number_float,
nlohmann::detail::value_t::discarded, nlohmann::detail::value_t::null, nlohmann::detail::value_t::object, nlohmann::detail::value_t::array,
nlohmann::detail::value_t::string, nlohmann::detail::value_t::boolean, nlohmann::detail::value_t::number_integer, nlohmann::detail::value_t::number_unsigned,
nlohmann::detail::value_t::number_float, nlohmann::detail::value_t::binary, nlohmann::detail::value_t::discarded
}

| the JSON type enumeration More...

enum

nlohmann::detail::input_format_t {
nlohmann::detail::input_format_t::json, nlohmann::detail::input_format_t::cbor, nlohmann::detail::input_format_t::msgpack, nlohmann::detail::input_format_t::ubjson,
nlohmann::detail::input_format_t::bson, nlohmann::detail::input_format_t::json, nlohmann::detail::input_format_t::cbor, nlohmann::detail::input_format_t::msgpack,
nlohmann::detail::input_format_t::ubjson, nlohmann::detail::input_format_t::bson
}

| the supported input formats More...
enum | nlohmann::detail::error_handler_t { nlohmann::detail::error_handler_t::strict, nlohmann::detail::error_handler_t::replace, nlohmann::detail::error_handler_t::ignore, nlohmann::detail::error_handler_t::strict, nlohmann::detail::error_handler_t::replace, nlohmann::detail::error_handler_t::ignore }
| how to treat decoding errors More...

## Functions

bool | nlohmann::detail::operator< (const value_t lhs, const value_t rhs) noexcept
| comparison operator for JSON types More...
template<typename BasicJsonType >
void | nlohmann::detail::from_json (const BasicJsonType &j, typename std::nullptr_t &n)
template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value and not std::is_same< ArithmeticType, typename BasicJsonType::boolean_t >::value, int > = 0>
void | nlohmann::detail::get_arithmetic_value (const BasicJsonType &j, ArithmeticType &val)
template<typename BasicJsonType >
void | nlohmann::detail::from_json (const BasicJsonType &j, typename BasicJsonType::boolean_t &b)
template<typename BasicJsonType >
void | nlohmann::detail::from_json (const BasicJsonType &j, typename BasicJsonType::string_t &s)
template<typename BasicJsonType , typename ConstructibleStringType , enable_if_t< is_constructible_string_type< BasicJsonType, ConstructibleStringType >::value and not std::is_same< typename BasicJsonType::string_t, ConstructibleStringType >::value, int > = 0>
void | nlohmann::detail::from_json (const BasicJsonType &j, ConstructibleStringType &s)
template<typename BasicJsonType >
void | nlohmann::detail::from_json (const BasicJsonType &j, typename BasicJsonType::number_float_t &val)
template<typename BasicJsonType >
void | nlohmann::detail::from_json (const BasicJsonType &j, typename BasicJsonType::number_unsigned_t &val)
template<typename BasicJsonType >
void | nlohmann::detail::from_json (const BasicJsonType &j, typename BasicJsonType::number_integer_t &val)
template<typename BasicJsonType , typename EnumType , enable_if_t< std::is_enum< EnumType >::value, int > = 0>
void | nlohmann::detail::from_json (const BasicJsonType &j, EnumType &e)
template<typename BasicJsonType , typename T , typename Allocator , enable_if_t< std::is_convertible< BasicJsonType, T >::value, int > = 0>
void | nlohmann::detail::from_json (const BasicJsonType &j, std::forward_list< T, Allocator > &l)
template<typename BasicJsonType , typename T , enable_if_t< std::is_convertible< BasicJsonType, T >::value, int > = 0>
void | nlohmann::detail::from_json (const BasicJsonType &j, std::valarray< T > &l)
template<typename BasicJsonType , typename T , std::size_t N>
auto | nlohmann::detail::from_json (const BasicJsonType &j, T(&arr)[N]) -> decltype(j.template get< T >(), void())
template<typename BasicJsonType >
void | nlohmann::detail::from_json_array_impl (const BasicJsonType &j, typename BasicJsonType::array_t &arr, priority_tag< 3 >)
template<typename BasicJsonType , typename T , std::size_t N>
auto | nlohmann::detail::from_json_array_impl (const BasicJsonType &j, std::array< T, N > &arr, priority_tag< 2 >) -> decltype(j.template get< T >(), void())
template<typename BasicJsonType , typename ConstructibleArrayType >
auto | nlohmann::detail::from_json_array_impl (const BasicJsonType &j, ConstructibleArrayType &arr, priority_tag< 1 >) -> decltype(arr.reserve(std::declval< typename ConstructibleArrayType::size_type >()), j.template get< typename ConstructibleArrayType::value_type >(), void())
template<typename BasicJsonType , typename ConstructibleArrayType >
void | nlohmann::detail::from_json_array_impl (const BasicJsonType &j, ConstructibleArrayType &arr, priority_tag< 0 >)
template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< is_constructible_array_type< BasicJsonType, ConstructibleArrayType >::value and not is_constructible_object_type< BasicJsonType, ConstructibleArrayType >::value and not is_constructible_string_type< BasicJsonType, ConstructibleArrayType >::value and not is_basic_json< ConstructibleArrayType >::value, int > = 0>
auto | nlohmann::detail::from_json (const BasicJsonType &j, ConstructibleArrayType &arr) -> decltype(from_json_array_impl(j, arr, priority_tag< 3 >
j template | nlohmann::detail::get< typename ConstructibleArrayType::value_type > ()
j template | nlohmann::detail::void ())
template<typename BasicJsonType , typename ConstructibleObjectType , enable_if_t< is_constructible_object_type< BasicJsonType, ConstructibleObjectType >::value, int > = 0>
void | nlohmann::detail::from_json (const BasicJsonType &j, ConstructibleObjectType &obj)

template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value and not std::is_same< ArithmeticType, typename BasicJsonType::number_unsigned_t >::value and not std::is_same< ArithmeticType, typename BasicJsonType::number_integer_t >::value and not std::is_same< ArithmeticType, typename BasicJsonType::number_float_t >::value and not std::is_same< ArithmeticType, typename BasicJsonType::boolean_t >::value, int > = 0>

void | nlohmann::detail::from_json (const BasicJsonType &j, ArithmeticType &val)
template<typename BasicJsonType , typename A1 , typename A2 >
void | nlohmann::detail::from_json (const BasicJsonType &j, std::pair< A1, A2 > &p)
template<typename BasicJsonType , typename Tuple , std::size_t... Idx>
void | nlohmann::detail::from_json_tuple_impl (const BasicJsonType &j, Tuple &t, index_sequence< Idx... >)
template<typename BasicJsonType , typename... Args>
void | nlohmann::detail::from_json (const BasicJsonType &j, std::tuple< Args... > &t)
template<typename BasicJsonType , typename Key , typename Value , typename Compare , typename Allocator , typename = enable_if_t<not std::is_constructible< typename BasicJsonType::string_t, Key>::value>>
void | nlohmann::detail::from_json (const BasicJsonType &j, std::map< Key, Value, Compare, Allocator > &m)
template<typename BasicJsonType , typename Key , typename Value , typename Hash , typename KeyEqual , typename Allocator , typename = enable_if_t<not std::is_constructible< typename BasicJsonType::string_t, Key>::value>>
void | nlohmann::detail::from_json (const BasicJsonType &j, std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > &m)
template<typename string_type >
void | nlohmann::detail::int_to_string (string_type &target, std::size_t value)
template<std::size_t N, typename IteratorType , enable_if_t< N==0, int > = 0>
auto | nlohmann::detail::get (const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.key())
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< T, typename BasicJsonType::boolean_t >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, T b) noexcept
template<typename BasicJsonType , typename CompatibleString , enable_if_t< std::is_constructible< typename BasicJsonType::string_t, CompatibleString >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const CompatibleString &s)
template<typename BasicJsonType >
void | nlohmann::detail::to_json (BasicJsonType &j, typename BasicJsonType::string_t &&s)
template<typename BasicJsonType , typename FloatType , enable_if_t< std::is_floating_point< FloatType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, FloatType val) noexcept
template<typename BasicJsonType , typename CompatibleNumberUnsignedType , enable_if_t< is_compatible_integer_type< typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, CompatibleNumberUnsignedType val) noexcept
template<typename BasicJsonType , typename CompatibleNumberIntegerType , enable_if_t< is_compatible_integer_type< typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, CompatibleNumberIntegerType val) noexcept
template<typename BasicJsonType , typename EnumType , enable_if_t< std::is_enum< EnumType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, EnumType e) noexcept
template<typename BasicJsonType >
void | nlohmann::detail::to_json (BasicJsonType &j, const std::vector< bool > &e)
template<typename BasicJsonType , typename CompatibleArrayType , enable_if_t< is_compatible_array_type< BasicJsonType, CompatibleArrayType >::value and not is_compatible_object_type< BasicJsonType, CompatibleArrayType >::value and not is_compatible_string_type< BasicJsonType, CompatibleArrayType >::value and not is_basic_json< CompatibleArrayType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const CompatibleArrayType &arr)
template<typename BasicJsonType , typename T , enable_if_t< std::is_convertible< T, BasicJsonType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const std::valarray< T > &arr)
template<typename BasicJsonType >
void | nlohmann::detail::to_json (BasicJsonType &j, typename BasicJsonType::array_t &&arr)
template<typename BasicJsonType , typename CompatibleObjectType , enable_if_t< is_compatible_object_type< BasicJsonType, CompatibleObjectType >::value and not is_basic_json< CompatibleObjectType >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const CompatibleObjectType &obj)
template<typename BasicJsonType >
void | nlohmann::detail::to_json (BasicJsonType &j, typename BasicJsonType::object_t &&obj)
template<typename BasicJsonType , typename T , std::size_t N, enable_if_t< not std::is_constructible< typename BasicJsonType::string_t, const T(&)[N]>::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const T(&arr)[N])
template<typename BasicJsonType , typename T1 , typename T2 , enable_if_t< std::is_constructible< BasicJsonType, T1 >::value &&std::is_constructible< BasicJsonType, T2 >::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const std::pair< T1, T2 > &p)
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< T, iteration_proxy_value< typename BasicJsonType::iterator >>::value, int > = 0>
void | nlohmann::detail::to_json (BasicJsonType &j, const T &b)
template<typename BasicJsonType , typename Tuple , std::size_t... Idx>
void | nlohmann::detail::to_json_tuple_impl (BasicJsonType &j, const Tuple &t, index_sequence< Idx... >)
template<typename Target , typename Source >
Target | nlohmann::detail::dtoa_impl::reinterpret_bits (const Source source)
template<typename FloatType >
boundaries | nlohmann::detail::dtoa_impl::compute_boundaries (FloatType value)
cached_power | nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent (int e)
int | nlohmann::detail::dtoa_impl::find_largest_pow10 (const std::uint32_t n, std::uint32_t &pow10)
void | nlohmann::detail::dtoa_impl::grisu2_round (char *buf, int len, std::uint64_t dist, std::uint64_t delta, std::uint64_t rest, std::uint64_t ten_k)
void | nlohmann::detail::dtoa_impl::grisu2_digit_gen (char *buffer, int &length, int &decimal_exponent, diyfp M_minus, diyfp w, diyfp M_plus)
void | nlohmann::detail::dtoa_impl::grisu2 (char *buf, int &len, int &decimal_exponent, diyfp m_minus, diyfp v, diyfp m_plus)
template<typename FloatType >
void | nlohmann::detail::dtoa_impl::grisu2 (char *buf, int &len, int &decimal_exponent, FloatType value)
JSON_HEDLEY_RETURNS_NON_NULL char * | nlohmann::detail::dtoa_impl::append_exponent (char *buf, int e)
| appends a decimal representation of e to buf More...
JSON_HEDLEY_RETURNS_NON_NULL char * | nlohmann::detail::dtoa_impl::format_buffer (char *buf, int len, int decimal_exponent, int min_exp, int max_exp)
| prettify v = buf * 10^decimal_exponent More...
template<typename FloatType >
JSON_HEDLEY_RETURNS_NON_NULL char * | nlohmann::detail::to_chars (char *first, const char *last, FloatType value)
| generates a decimal representation of the floating-point number value in [first, last). More...
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string | nlohmann::to_string (const NLOHMANN_BASIC_JSON_TPL &j)
| user-defined to_string function for JSON values More...
template<>
void | std::swap< nlohmann::json > (nlohmann::json &j1, nlohmann::json &j2) noexcept(is_nothrow_move_constructible< nlohmann::json >::value and is_nothrow_move_assignable< nlohmann::json >::value)
| exchanges the values of two JSON objects More...
nlohmann::json | operator""_json (const char *s, std::size_t n)
| user-defined string literal for JSON values More...
nlohmann::json::json_pointer | operator""_json_pointer (const char *s, std::size_t n)
| user-defined string literal for JSON pointer More...

## Variables

constexpr int | nlohmann::detail::dtoa_impl::kAlpha = -60
constexpr int | nlohmann::detail::dtoa_impl::kGamma = -32

## Macro Definition Documentation

## INCLUDE_NLOHMANN_JSON_FWD_HPP_

#define INCLUDE_NLOHMANN_JSON_FWD_HPP_

## JSON_CATCH

#define JSON_CATCH | ( |  | exception | ) | if(false)

## JSON_HEDLEY_ALWAYS_INLINE

#define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE

## JSON_HEDLEY_ARM_VERSION_CHECK

#define JSON_HEDLEY_ARM_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_ARRAY_PARAM

#define JSON_HEDLEY_ARRAY_PARAM | ( |  | name | ) |

## JSON_HEDLEY_ASSUME

#define JSON_HEDLEY_ASSUME | ( |  | expr | ) | ((void) (expr))

## JSON_HEDLEY_BEGIN_C_DECLS

#define JSON_HEDLEY_BEGIN_C_DECLS

## JSON_HEDLEY_C_DECL

#define JSON_HEDLEY_C_DECL

## JSON_HEDLEY_CLANG_HAS_ATTRIBUTE

#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE | ( |  | attribute | ) | JSON_HEDLEY_HAS_ATTRIBUTE(attribute)

## JSON_HEDLEY_CLANG_HAS_BUILTIN

#define JSON_HEDLEY_CLANG_HAS_BUILTIN | ( |  | builtin | ) | JSON_HEDLEY_HAS_BUILTIN(builtin)

## JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE

#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE | ( |  | attribute | ) | JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute)

## JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE

#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE | ( |  | attribute | ) | JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute)

## JSON_HEDLEY_CLANG_HAS_EXTENSION

#define JSON_HEDLEY_CLANG_HAS_EXTENSION | ( |  | extension | ) | JSON_HEDLEY_HAS_EXTENSION(extension)

## JSON_HEDLEY_CLANG_HAS_FEATURE

#define JSON_HEDLEY_CLANG_HAS_FEATURE | ( |  | feature | ) | JSON_HEDLEY_HAS_FEATURE(feature)

## JSON_HEDLEY_CLANG_HAS_WARNING

#define JSON_HEDLEY_CLANG_HAS_WARNING | ( |  | warning | ) | JSON_HEDLEY_HAS_WARNING(warning)

## JSON_HEDLEY_COMPCERT_VERSION_CHECK

#define JSON_HEDLEY_COMPCERT_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_CONCAT

#define JSON_HEDLEY_CONCAT | ( |  | a,
|  |  | b
| ) |  | JSON_HEDLEY_CONCAT_EX(a,b)

## JSON_HEDLEY_CONCAT_EX

#define JSON_HEDLEY_CONCAT_EX | ( |  | a,
|  |  | b
| ) |  | a##b

## JSON_HEDLEY_CONST

#define JSON_HEDLEY_CONST JSON_HEDLEY_PURE

## JSON_HEDLEY_CONST_CAST

#define JSON_HEDLEY_CONST_CAST | ( |  | T,
|  |  | expr
| ) |  | ((T) (expr))

## JSON_HEDLEY_CONSTEXPR

#define JSON_HEDLEY_CONSTEXPR

## JSON_HEDLEY_CPP_CAST

#define JSON_HEDLEY_CPP_CAST | ( |  | T,
|  |  | expr
| ) |  | (expr)

## JSON_HEDLEY_CRAY_VERSION_CHECK

#define JSON_HEDLEY_CRAY_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_DEPRECATED

#define JSON_HEDLEY_DEPRECATED | ( |  | since | ) |

## JSON_HEDLEY_DEPRECATED_FOR

#define JSON_HEDLEY_DEPRECATED_FOR | ( |  | since,
|  |  | replacement
| ) |  |

## JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL

#define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL

## JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_

#define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ | ( |  | x | ) | x

## JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED

#define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED

## JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES

#define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES

## JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS

#define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS

## JSON_HEDLEY_DIAGNOSTIC_POP

#define JSON_HEDLEY_DIAGNOSTIC_POP

## JSON_HEDLEY_DIAGNOSTIC_PUSH

#define JSON_HEDLEY_DIAGNOSTIC_PUSH

## JSON_HEDLEY_DMC_VERSION_CHECK

#define JSON_HEDLEY_DMC_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_EMPTY_BASES

#define JSON_HEDLEY_EMPTY_BASES

## JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK

#define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_END_C_DECLS

#define JSON_HEDLEY_END_C_DECLS

## JSON_HEDLEY_FALL_THROUGH

#define JSON_HEDLEY_FALL_THROUGH

## JSON_HEDLEY_FLAGS_CAST

#define JSON_HEDLEY_FLAGS_CAST | ( |  | T,
|  |  | expr
| ) |  | JSON_HEDLEY_STATIC_CAST(T, expr)

## JSON_HEDLEY_GCC_HAS_ATTRIBUTE

#define JSON_HEDLEY_GCC_HAS_ATTRIBUTE | ( |  | attribute,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_HAS_BUILTIN

#define JSON_HEDLEY_GCC_HAS_BUILTIN | ( |  | builtin,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE

#define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE | ( |  | attribute,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE

#define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE | ( |  | attribute,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_HAS_EXTENSION

#define JSON_HEDLEY_GCC_HAS_EXTENSION | ( |  | extension,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_HAS_FEATURE

#define JSON_HEDLEY_GCC_HAS_FEATURE | ( |  | feature,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_HAS_WARNING

#define JSON_HEDLEY_GCC_HAS_WARNING | ( |  | warning,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK

#define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GCC_VERSION_CHECK

#define JSON_HEDLEY_GCC_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_GNUC_HAS_ATTRIBUTE

#define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE | ( |  | attribute,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_HAS_BUILTIN

#define JSON_HEDLEY_GNUC_HAS_BUILTIN | ( |  | builtin,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE

#define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE | ( |  | attribute,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE

#define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE | ( |  | attribute,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_HAS_EXTENSION

#define JSON_HEDLEY_GNUC_HAS_EXTENSION | ( |  | extension,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_HAS_FEATURE

#define JSON_HEDLEY_GNUC_HAS_FEATURE | ( |  | feature,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_HAS_WARNING

#define JSON_HEDLEY_GNUC_HAS_WARNING | ( |  | warning,
|  |  | major,
|  |  | minor,
|  |  | patch
| ) |  | JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)

## JSON_HEDLEY_GNUC_VERSION_CHECK

#define JSON_HEDLEY_GNUC_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_HAS_ATTRIBUTE

#define JSON_HEDLEY_HAS_ATTRIBUTE | ( |  | attribute | ) | (0)

## JSON_HEDLEY_HAS_BUILTIN

#define JSON_HEDLEY_HAS_BUILTIN | ( |  | builtin | ) | (0)

## JSON_HEDLEY_HAS_CPP_ATTRIBUTE

#define JSON_HEDLEY_HAS_CPP_ATTRIBUTE | ( |  | attribute | ) | (0)

## JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS

#define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS | ( |  | ns,
|  |  | attribute
| ) |  | (0)

## JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE

#define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE | ( |  | attribute | ) | (0)

## JSON_HEDLEY_HAS_EXTENSION

#define JSON_HEDLEY_HAS_EXTENSION | ( |  | extension | ) | (0)

## JSON_HEDLEY_HAS_FEATURE

#define JSON_HEDLEY_HAS_FEATURE | ( |  | feature | ) | (0)

## JSON_HEDLEY_HAS_WARNING

#define JSON_HEDLEY_HAS_WARNING | ( |  | warning | ) | (0)

## JSON_HEDLEY_IAR_VERSION_CHECK

#define JSON_HEDLEY_IAR_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_IBM_VERSION_CHECK

#define JSON_HEDLEY_IBM_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_IMPORT

#define JSON_HEDLEY_IMPORT extern

## JSON_HEDLEY_INLINE

#define JSON_HEDLEY_INLINE

## JSON_HEDLEY_INTEL_VERSION_CHECK

#define JSON_HEDLEY_INTEL_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_IS_CONSTANT

#define JSON_HEDLEY_IS_CONSTANT | ( |  | expr | ) | (0)

## JSON_HEDLEY_LIKELY

#define JSON_HEDLEY_LIKELY | ( |  | expr | ) | (!!(expr))

## JSON_HEDLEY_MALLOC

#define JSON_HEDLEY_MALLOC

## JSON_HEDLEY_MESSAGE

#define JSON_HEDLEY_MESSAGE | ( |  | msg | ) |

## JSON_HEDLEY_MSVC_VERSION_CHECK

#define JSON_HEDLEY_MSVC_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_NEVER_INLINE

#define JSON_HEDLEY_NEVER_INLINE

## JSON_HEDLEY_NO_ESCAPE

#define JSON_HEDLEY_NO_ESCAPE

## JSON_HEDLEY_NO_RETURN

#define JSON_HEDLEY_NO_RETURN

## JSON_HEDLEY_NO_THROW

#define JSON_HEDLEY_NO_THROW

## JSON_HEDLEY_NON_NULL

#define JSON_HEDLEY_NON_NULL | ( |  | ... | ) |

## JSON_HEDLEY_NULL

#define JSON_HEDLEY_NULL ((void*) 0)

## JSON_HEDLEY_PELLES_VERSION_CHECK

#define JSON_HEDLEY_PELLES_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_PGI_VERSION_CHECK

#define JSON_HEDLEY_PGI_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_PRAGMA

#define JSON_HEDLEY_PRAGMA | ( |  | value | ) |

## JSON_HEDLEY_PREDICT

#define JSON_HEDLEY_PREDICT | ( |  | expr,
|  |  | expected,
|  |  | probability
| ) |  | (((void) (expected)), !!(expr))

## JSON_HEDLEY_PREDICT_FALSE

#define JSON_HEDLEY_PREDICT_FALSE | ( |  | expr,
|  |  | probability
| ) |  | (!!(expr))

## JSON_HEDLEY_PREDICT_TRUE

#define JSON_HEDLEY_PREDICT_TRUE | ( |  | expr,
|  |  | probability
| ) |  | (!!(expr))

## JSON_HEDLEY_PRINTF_FORMAT

#define JSON_HEDLEY_PRINTF_FORMAT | ( |  | string_idx,
|  |  | first_to_check
| ) |  |

## JSON_HEDLEY_PRIVATE

#define JSON_HEDLEY_PRIVATE

## JSON_HEDLEY_PUBLIC

#define JSON_HEDLEY_PUBLIC

## JSON_HEDLEY_PURE

#define JSON_HEDLEY_PURE

## JSON_HEDLEY_REINTERPRET_CAST

#define JSON_HEDLEY_REINTERPRET_CAST | ( |  | T,
|  |  | expr
| ) |  | (*((T*) &(expr)))

## JSON_HEDLEY_REQUIRE

#define JSON_HEDLEY_REQUIRE | ( |  | expr | ) |

## JSON_HEDLEY_REQUIRE_CONSTEXPR

#define JSON_HEDLEY_REQUIRE_CONSTEXPR | ( |  | expr | ) | (expr)

## JSON_HEDLEY_REQUIRE_MSG

#define JSON_HEDLEY_REQUIRE_MSG | ( |  | expr,
|  |  | msg
| ) |  |

## JSON_HEDLEY_RESTRICT

#define JSON_HEDLEY_RESTRICT

## JSON_HEDLEY_RETURNS_NON_NULL

#define JSON_HEDLEY_RETURNS_NON_NULL

## JSON_HEDLEY_SENTINEL

#define JSON_HEDLEY_SENTINEL | ( |  | position | ) |

## JSON_HEDLEY_STATIC_ASSERT

#define JSON_HEDLEY_STATIC_ASSERT | ( |  | expr,
|  |  | message
| ) |  |

## JSON_HEDLEY_STATIC_CAST

#define JSON_HEDLEY_STATIC_CAST | ( |  | T,
|  |  | expr
| ) |  | ((T) (expr))

## JSON_HEDLEY_STRINGIFY

#define JSON_HEDLEY_STRINGIFY | ( |  | x | ) | JSON_HEDLEY_STRINGIFY_EX(x)

## JSON_HEDLEY_STRINGIFY_EX

#define JSON_HEDLEY_STRINGIFY_EX | ( |  | x | ) | #x

## JSON_HEDLEY_SUNPRO_VERSION_CHECK

#define JSON_HEDLEY_SUNPRO_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_TI_VERSION_CHECK

#define JSON_HEDLEY_TI_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_TINYC_VERSION_CHECK

#define JSON_HEDLEY_TINYC_VERSION_CHECK | ( |  | major,
|  |  | minor,
|  |  | patch
| ) |  | (0)

## JSON_HEDLEY_UNAVAILABLE

#define JSON_HEDLEY_UNAVAILABLE | ( |  | available_since | ) |

## JSON_HEDLEY_UNLIKELY

#define JSON_HEDLEY_UNLIKELY | ( |  | expr | ) | (!!(expr))

## JSON_HEDLEY_UNPREDICTABLE

#define JSON_HEDLEY_UNPREDICTABLE | ( |  | expr | ) | JSON_HEDLEY_PREDICT(expr, 1, 0.5)

## JSON_HEDLEY_UNREACHABLE

#define JSON_HEDLEY_UNREACHABLE | ( |  | ) |

## JSON_HEDLEY_UNREACHABLE_RETURN

#define JSON_HEDLEY_UNREACHABLE_RETURN | ( |  | value | ) | return value

## JSON_HEDLEY_VERSION

#define JSON_HEDLEY_VERSION 11

## JSON_HEDLEY_VERSION_DECODE_MAJOR

#define JSON_HEDLEY_VERSION_DECODE_MAJOR | ( |  | version | ) | ((version) / 1000000)

## JSON_HEDLEY_VERSION_DECODE_MINOR

#define JSON_HEDLEY_VERSION_DECODE_MINOR | ( |  | version | ) | (((version) % 1000000) / 1000)

## JSON_HEDLEY_VERSION_DECODE_REVISION

#define JSON_HEDLEY_VERSION_DECODE_REVISION | ( |  | version | ) | ((version) % 1000)

## JSON_HEDLEY_VERSION_ENCODE

#define JSON_HEDLEY_VERSION_ENCODE | ( |  | major,
|  |  | minor,
|  |  | revision
| ) |  | (((major) * 1000000) + ((minor) * 1000) + (revision))

## JSON_HEDLEY_WARN_UNUSED_RESULT

#define JSON_HEDLEY_WARN_UNUSED_RESULT

## JSON_HEDLEY_WARNING

#define JSON_HEDLEY_WARNING | ( |  | msg | ) | JSON_HEDLEY_MESSAGE(msg)

## JSON_INTERNAL_CATCH

#define JSON_INTERNAL_CATCH | ( |  | exception | ) | if(false)

## JSON_THROW

#define JSON_THROW | ( |  | exception | ) | std::abort()

## JSON_TRY

#define JSON_TRY if(true)

## NLOHMANN_BASIC_JSON_TPL

#define NLOHMANN_BASIC_JSON_TPL

Value:
basic_json<ObjectType, ArrayType, StringType, BooleanType, \
NumberIntegerType, NumberUnsignedType, NumberFloatType, \
AllocatorType, JSONSerializer>

## NLOHMANN_BASIC_JSON_TPL_DECLARATION

#define NLOHMANN_BASIC_JSON_TPL_DECLARATION

Value:
template<template<typename, typename, typename...> class ObjectType, \
template<typename, typename...> class ArrayType, \
class StringType, class BooleanType, class NumberIntegerType, \
class NumberUnsignedType, class NumberFloatType, \
template<typename> class AllocatorType, \
template<typename, typename = void> class JSONSerializer>

## NLOHMANN_JSON_SERIALIZE_ENUM

#define NLOHMANN_JSON_SERIALIZE_ENUM | ( |  | ENUM_TYPE,
|  |  | ...
| ) |  |

Value:
template<typename BasicJsonType> \
inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \
{ \
static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE " must be an enum!"); \
static const std::pair<ENUM_TYPE, BasicJsonType> m[] = __VA_ARGS__; \
auto it = std::find_if(std::begin(m), std::end(m), \
[e](const std::pair<ENUM_TYPE, BasicJsonType>& ej_pair) -> bool \
{ \
return ej_pair.first == e; \
}); \
j = ((it != std::end(m)) ? it : std::begin(m))->second; \
} \
template<typename BasicJsonType> \
inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \
{ \
static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE " must be an enum!"); \
static const std::pair<ENUM_TYPE, BasicJsonType> m[] = __VA_ARGS__; \
auto it = std::find_if(std::begin(m), std::end(m), \
[&j](const std::pair<ENUM_TYPE, BasicJsonType>& ej_pair) -> bool \
{ \
return ej_pair.second == j; \
}); \
e = ((it != std::end(m)) ? it : std::begin(m))->first; \
}

macro to briefly define a mapping between an enum and JSON

Since
  version 3.4.0

## NLOHMANN_JSON_VERSION_MAJOR

#define NLOHMANN_JSON_VERSION_MAJOR 3

## NLOHMANN_JSON_VERSION_MINOR

#define NLOHMANN_JSON_VERSION_MINOR 7

## NLOHMANN_JSON_VERSION_PATCH

#define NLOHMANN_JSON_VERSION_PATCH 3

## Function Documentation

## operator""_json()

nlohmann::json operator""_json | ( | const char * | s,
|  | std::size_t | n
| ) |  |

inline

user-defined string literal for JSON values

This operator implements a user-defined string literal for JSON objects. It can be used by adding `"_json"` to a string literal and returns a JSON object if no parse error occurred.

Parameters

  [in] | s | a string representation of a JSON object
  [in] | n | the length of string s

Returns
  a JSON object

Since
  version 1.0.0

## operator""_json_pointer()

nlohmann::json::json_pointer operator""_json_pointer | ( | const char * | s,
|  | std::size_t | n
| ) |  |

inline

user-defined string literal for JSON pointer

This operator implements a user-defined string literal for JSON Pointers. It can be used by adding `"_json_pointer"` to a string literal and returns a JSON pointer object if no parse error occurred.

Parameters

  [in] | s | a string representation of a JSON Pointer
  [in] | n | the length of string s

Returns
  a JSON pointer object

Since
  version 2.0.0

nlohmann::detail::from_json
void from_json(const BasicJsonType &j, typename BasicJsonType::binary_t &bin)
Definition: json.hpp:3652
nlohmann::detail::to_json
void to_json(BasicJsonType &j, const typename BasicJsonType::binary_t &bin)
Definition: json.hpp:4280