Server
 
로딩중...
검색중...
일치하는것 없음
json.hpp 파일 참조

JSON 처리 유틸리티 헤더 파일 더 자세히 ...

#include <algorithm>
#include <cstddef>
#include <functional>
#include <initializer_list>
#include <iosfwd>
#include <iterator>
#include <memory>
#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 <cstdint>
#include <cstdlib>
#include <cassert>
#include <limits>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <numeric>
#include <streambuf>
#include <istream>
#include <clocale>
#include <cctype>
#include <cerrno>
#include <ios>
#include <ostream>
#include <iomanip>
json.hpp에 대한 include 의존 그래프
이 그래프는 이 파일을 직/간접적으로 include 하는 파일들을 보여줍니다.:

이 파일의 소스 코드 페이지로 가기

클래스

struct  detail::make_void< Ts >
 
struct  detail::nonesuch
 
struct  detail::detector< Default, AlwaysVoid, Op, Args >
 
struct  detail::detector< Default, void_t< Op< Args... > >, Op, Args... >
 
struct  detail::is_detected_lazy< Op, Args >
 
struct  detail::position_t
 struct to capture the start position of the current token 더 자세히 ...
 
struct  detail::integer_sequence< T, Ints >
 
struct  detail::utility_internal::Extend< integer_sequence< T, Ints... >, SeqSize, 0 >
 
struct  detail::utility_internal::Extend< integer_sequence< T, Ints... >, SeqSize, 1 >
 
struct  detail::utility_internal::Gen< T, N >
 
struct  detail::utility_internal::Gen< T, 0 >
 
struct  detail::priority_tag< N >
 
struct  detail::priority_tag< 0 >
 
struct  detail::static_const< T >
 
struct  detail::iterator_types< It, typename >
 
struct  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  detail::iterator_traits< T, typename >
 
struct  detail::iterator_traits< T, enable_if_t< !std::is_pointer< T >::value > >
 
struct  detail::iterator_traits< T *, enable_if_t< std::is_object< T >::value > >
 
struct  detail::is_basic_json< typename >
 
struct  detail::is_basic_json< NLOHMANN_BASIC_JSON_TPL >
 
struct  detail::is_basic_json_context< BasicJsonContext >
 
struct  detail::is_json_ref< typename >
 
struct  detail::is_json_ref< json_ref< T > >
 
struct  detail::has_from_json< BasicJsonType, T, typename >
 
struct  detail::is_getable< BasicJsonType, T >
 
struct  detail::has_from_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >
 
struct  detail::has_non_default_from_json< BasicJsonType, T, typename >
 
struct  detail::has_non_default_from_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >
 
struct  detail::has_to_json< BasicJsonType, T, typename >
 
struct  detail::has_to_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >
 
struct  detail::has_key_compare< T >
 
struct  detail::actual_object_comparator< BasicJsonType >
 
struct  detail::char_traits< T >
 
struct  detail::char_traits< unsigned char >
 
struct  detail::char_traits< signed char >
 
struct  detail::conjunction<... >
 
struct  detail::conjunction< B >
 
struct  detail::conjunction< B, Bn... >
 
struct  detail::negation< B >
 
struct  detail::is_default_constructible< T >
 
struct  detail::is_default_constructible< std::pair< T1, T2 > >
 
struct  detail::is_default_constructible< const std::pair< T1, T2 > >
 
struct  detail::is_default_constructible< std::tuple< Ts... > >
 
struct  detail::is_default_constructible< const std::tuple< Ts... > >
 
struct  detail::is_constructible< T, Args >
 
struct  detail::is_constructible< std::pair< T1, T2 > >
 
struct  detail::is_constructible< const std::pair< T1, T2 > >
 
struct  detail::is_constructible< std::tuple< Ts... > >
 
struct  detail::is_constructible< const std::tuple< Ts... > >
 
struct  detail::is_iterator_traits< T, typename >
 
struct  detail::is_iterator_traits< iterator_traits< T > >
 
struct  detail::is_range< T >
 
struct  detail::is_complete_type< T, typename >
 
struct  detail::is_complete_type< T, decltype(void(sizeof(T)))>
 
struct  detail::is_compatible_object_type_impl< BasicJsonType, CompatibleObjectType, typename >
 
struct  detail::is_compatible_object_type_impl< BasicJsonType, CompatibleObjectType, enable_if_t< is_detected< mapped_type_t, CompatibleObjectType >::value &&is_detected< key_type_t, CompatibleObjectType >::value > >
 
struct  detail::is_compatible_object_type< BasicJsonType, CompatibleObjectType >
 
struct  detail::is_constructible_object_type_impl< BasicJsonType, ConstructibleObjectType, typename >
 
struct  detail::is_constructible_object_type_impl< BasicJsonType, ConstructibleObjectType, enable_if_t< is_detected< mapped_type_t, ConstructibleObjectType >::value &&is_detected< key_type_t, ConstructibleObjectType >::value > >
 
struct  detail::is_constructible_object_type< BasicJsonType, ConstructibleObjectType >
 
struct  detail::is_compatible_string_type< BasicJsonType, CompatibleStringType >
 
struct  detail::is_constructible_string_type< BasicJsonType, ConstructibleStringType >
 
struct  detail::is_compatible_array_type_impl< BasicJsonType, CompatibleArrayType, typename >
 
struct  detail::is_compatible_array_type_impl< BasicJsonType, CompatibleArrayType, enable_if_t< is_detected< iterator_t, CompatibleArrayType >::value &&is_iterator_traits< iterator_traits< detected_t< iterator_t, CompatibleArrayType > > >::value &&!std::is_same< CompatibleArrayType, detected_t< range_value_t, CompatibleArrayType > >::value > >
 
struct  detail::is_compatible_array_type< BasicJsonType, CompatibleArrayType >
 
struct  detail::is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, typename >
 
struct  detail::is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, enable_if_t< std::is_same< ConstructibleArrayType, typename BasicJsonType::value_type >::value > >
 
struct  detail::is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, enable_if_t< !std::is_same< ConstructibleArrayType, typename BasicJsonType::value_type >::value &&!is_compatible_string_type< BasicJsonType, ConstructibleArrayType >::value &&is_default_constructible< ConstructibleArrayType >::value &&(std::is_move_assignable< ConstructibleArrayType >::value||std::is_copy_assignable< ConstructibleArrayType >::value)&&is_detected< iterator_t, ConstructibleArrayType >::value &&is_iterator_traits< iterator_traits< detected_t< iterator_t, ConstructibleArrayType > > >::value &&is_detected< range_value_t, ConstructibleArrayType >::value &&!std::is_same< ConstructibleArrayType, detected_t< range_value_t, ConstructibleArrayType > >::value &&is_complete_type< detected_t< range_value_t, ConstructibleArrayType > >::value > >
 
struct  detail::is_constructible_array_type< BasicJsonType, ConstructibleArrayType >
 
struct  detail::is_compatible_integer_type_impl< RealIntegerType, CompatibleNumberIntegerType, typename >
 
struct  detail::is_compatible_integer_type_impl< RealIntegerType, CompatibleNumberIntegerType, enable_if_t< std::is_integral< RealIntegerType >::value &&std::is_integral< CompatibleNumberIntegerType >::value &&!std::is_same< bool, CompatibleNumberIntegerType >::value > >
 
struct  detail::is_compatible_integer_type< RealIntegerType, CompatibleNumberIntegerType >
 
struct  detail::is_compatible_type_impl< BasicJsonType, CompatibleType, typename >
 
struct  detail::is_compatible_type_impl< BasicJsonType, CompatibleType, enable_if_t< is_complete_type< CompatibleType >::value > >
 
struct  detail::is_compatible_type< BasicJsonType, CompatibleType >
 
struct  detail::is_constructible_tuple< T1, T2 >
 
struct  detail::is_constructible_tuple< T1, std::tuple< Args... > >
 
struct  detail::is_json_iterator_of< BasicJsonType, T >
 
struct  detail::is_json_iterator_of< BasicJsonType, typename BasicJsonType::iterator >
 
struct  detail::is_json_iterator_of< BasicJsonType, typename BasicJsonType::const_iterator >
 
struct  detail::is_specialization_of< Primary, T >
 
struct  detail::is_specialization_of< Primary, Primary< Args... > >
 
struct  detail::is_comparable< Compare, A, B, typename >
 
struct  detail::is_comparable< Compare, A, B, void_t< decltype(std::declval< Compare >()(std::declval< A >(), std::declval< B >())), decltype(std::declval< Compare >()(std::declval< B >(), std::declval< A >()))> >
 
struct  detail::is_ordered_map< T >
 
struct  detail::is_ordered_map< T >::two
 
struct  detail::value_in_range_of_impl2< OfType, T, false, false >
 
struct  detail::value_in_range_of_impl2< OfType, T, true, false >
 
struct  detail::value_in_range_of_impl2< OfType, T, false, true >
 
struct  detail::value_in_range_of_impl2< OfType, T, true, true >
 
struct  detail::value_in_range_of_impl1< OfType, T, false >
 
struct  detail::value_in_range_of_impl1< OfType, T, true >
 
struct  detail::is_c_string< T >
 
struct  detail::is_transparent< T >
 
class  detail::exception
 general exception of the basic_json class 더 자세히 ...
 
class  detail::parse_error
 exception indicating a parse error 더 자세히 ...
 
class  detail::invalid_iterator
 exception indicating errors with iterators 더 자세히 ...
 
class  detail::type_error
 exception indicating executing a member function with a wrong type 더 자세히 ...
 
class  detail::out_of_range
 exception indicating access out of the defined range 더 자세히 ...
 
class  detail::other_error
 exception indicating other library errors 더 자세히 ...
 
class  detail::iteration_proxy_value< IteratorType >
 
class  detail::iteration_proxy< IteratorType >
 proxy class for the items() function 더 자세히 ...
 
class  std::tuple_size<::nlohmann::detail::iteration_proxy_value< IteratorType > >
 
class  std::tuple_element< N, ::nlohmann::detail::iteration_proxy_value< IteratorType > >
 
struct  detail::external_constructor< value_t::boolean >
 
struct  detail::external_constructor< value_t::string >
 
struct  detail::external_constructor< value_t::binary >
 
struct  detail::external_constructor< value_t::number_float >
 
struct  detail::external_constructor< value_t::number_unsigned >
 
struct  detail::external_constructor< value_t::number_integer >
 
struct  detail::external_constructor< value_t::array >
 
struct  detail::external_constructor< value_t::object >
 
struct  detail::to_json_fn
 
struct  adl_serializer< ValueType, typename >
 namespace for Niels Lohmann 더 자세히 ...
 
class  byte_container_with_subtype< BinaryType >
 an internal type for a backed binary type 더 자세히 ...
 
struct  detail::container_input_adapter_factory_impl::container_input_adapter_factory< ContainerType, Enable >
 
struct  detail::container_input_adapter_factory_impl::container_input_adapter_factory< ContainerType, void_t< decltype(begin(std::declval< ContainerType >()), end(std::declval< ContainerType >()))> >
 
struct  json_sax< BasicJsonType >
 SAX interface 더 자세히 ...
 
class  detail::json_sax_dom_parser< BasicJsonType, InputAdapterType >
 SAX implementation to create a JSON value from SAX events 더 자세히 ...
 
class  detail::json_sax_dom_callback_parser< BasicJsonType, InputAdapterType >
 
class  detail::json_sax_acceptor< BasicJsonType >
 
struct  detail::is_sax< SAX, BasicJsonType >
 
struct  detail::is_sax_static_asserts< SAX, BasicJsonType >
 
class  detail::binary_reader< BasicJsonType, InputAdapterType, SAX >
 deserialization of CBOR, MessagePack, and UBJSON values 더 자세히 ...
 
struct  detail::internal_iterator< BasicJsonType >
 an iterator value 더 자세히 ...
 
class  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. 더 자세히 ...
 
class  detail::json_reverse_iterator< Base >
 a template for a reverse iterator class 더 자세히 ...
 
struct  detail::json_default_base
 Default base class of the basic_json class. 더 자세히 ...
 
class  json_pointer< RefStringType >
 JSON Pointer defines a string syntax for identifying a specific value within a JSON document 더 자세히 ...
 
class  detail::json_ref< BasicJsonType >
 
class  detail::serializer< BasicJsonType >
 
struct  ordered_map< Key, T, IgnoredLess, Allocator >
 a minimal map-like container that preserves insertion order 더 자세히 ...
 
class  basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass >
 namespace for Niels Lohmann 더 자세히 ...
 
struct  std::hash< nlohmann::NLOHMANN_BASIC_JSON_TPL >
 hash value for JSON objects 더 자세히 ...
 
struct  std::less< ::nlohmann::detail::value_t >
 

네임스페이스

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

매크로

#define NLOHMANN_JSON_VERSION_MAJOR   3
 
#define NLOHMANN_JSON_VERSION_MINOR   12
 
#define NLOHMANN_JSON_VERSION_PATCH   0
 
#define JSON_DIAGNOSTICS   0
 
#define JSON_DIAGNOSTIC_POSITIONS   0
 
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON   0
 
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
 
#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS
 
#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
 
#define NLOHMANN_JSON_NAMESPACE_NO_VERSION   0
 
#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c)   json_abi ## a ## b ## c
 
#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c)    NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c)
 
#define NLOHMANN_JSON_ABI_TAGS
 
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)    _v ## major ## _ ## minor ## _ ## patch
 
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch)    NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
 
#define NLOHMANN_JSON_NAMESPACE_VERSION
 
#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)   a ## b
 
#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b)    NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
 
#define NLOHMANN_JSON_NAMESPACE
 
#define NLOHMANN_JSON_NAMESPACE_BEGIN
 
#define NLOHMANN_JSON_NAMESPACE_END
 
#define JSON_HEDLEY_VERSION   15
 
#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_CONCAT3_EX(a, b, c)   a##b##c
 
#define JSON_HEDLEY_CONCAT3(a, b, c)   JSON_HEDLEY_CONCAT3_EX(a,b,c)
 
#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_INTEL_CL_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_TI_CL2000_VERSION_CHECK(major, minor, patch)   (0)
 
#define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major, minor, patch)   (0)
 
#define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major, minor, patch)   (0)
 
#define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major, minor, patch)   (0)
 
#define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major, minor, patch)   (0)
 
#define JSON_HEDLEY_TI_CLPRU_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_MCST_LCC_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_PRAGMA(value)
 
#define JSON_HEDLEY_DIAGNOSTIC_PUSH
 
#define JSON_HEDLEY_DIAGNOSTIC_POP
 
#define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x)   x
 
#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_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_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
 
#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_WARN_UNUSED_RESULT_MSG(msg)
 
#define JSON_HEDLEY_SENTINEL(position)
 
#define JSON_HEDLEY_NO_RETURN
 
#define JSON_HEDLEY_NO_ESCAPE
 
#define JSON_HEDLEY_ASSUME(expr)   JSON_HEDLEY_STATIC_CAST(void, expr)
 
#define JSON_HEDLEY_UNREACHABLE_RETURN(value)   return (value)
 
#define JSON_HEDLEY_UNREACHABLE()   JSON_HEDLEY_ASSUME(0)
 
#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)   (JSON_HEDLEY_STATIC_CAST(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_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
 
#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_HAS_CPP_11
 
#define JSON_HAS_EXPERIMENTAL_FILESYSTEM   0
 
#define JSON_HAS_FILESYSTEM   0
 
#define JSON_HAS_THREE_WAY_COMPARISON   0
 
#define JSON_HAS_RANGES   0
 
#define JSON_HAS_STATIC_RTTI   1
 
#define JSON_INLINE_VARIABLE
 
#define JSON_NO_UNIQUE_ADDRESS
 
#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 JSON_ASSERT(x)   assert(x)
 
#define JSON_PRIVATE_UNLESS_TESTED   private
 
#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...)
 macro to briefly define a mapping between an enum and JSON
 
#define NLOHMANN_BASIC_JSON_TPL_DECLARATION
 
#define NLOHMANN_BASIC_JSON_TPL
 
#define NLOHMANN_JSON_EXPAND(x)   x
 
#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME, ...)   NAME
 
#define NLOHMANN_JSON_PASTE(...)
 
#define NLOHMANN_JSON_PASTE2(func, v1)   func(v1)
 
#define NLOHMANN_JSON_PASTE3(func, v1, v2)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2)
 
#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3)
 
#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4)
 
#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5)
 
#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6)
 
#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7)
 
#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8)
 
#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9)
 
#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10)
 
#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
 
#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)
 
#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
 
#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)
 
#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)
 
#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)
 
#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17)
 
#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)
 
#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19)
 
#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)
 
#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)
 
#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)
 
#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23)
 
#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24)
 
#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25)
 
#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26)
 
#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27)
 
#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28)
 
#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29)
 
#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30)
 
#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31)
 
#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32)
 
#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33)
 
#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34)
 
#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35)
 
#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36)
 
#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37)
 
#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38)
 
#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39)
 
#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40)
 
#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41)
 
#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42)
 
#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43)
 
#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44)
 
#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45)
 
#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46)
 
#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47)
 
#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48)
 
#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49)
 
#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50)
 
#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51)
 
#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52)
 
#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53)
 
#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54)
 
#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55)
 
#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56)
 
#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57)
 
#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58)
 
#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59)
 
#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60)
 
#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61)
 
#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62)
 
#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63)   NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63)
 
#define NLOHMANN_JSON_TO(v1)   nlohmann_json_j[#v1] = nlohmann_json_t.v1;
 
#define NLOHMANN_JSON_FROM(v1)   nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1);
 
#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1)   nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1;
 
#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...)
 macro
 
#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...)
 macro
 
#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...)
 macro
 
#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...)
 macro
 
#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...)
 macro
 
#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...)
 macro
 
#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...)
 macro
 
#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...)
 macro
 
#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...)
 macro
 
#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...)
 macro
 
#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...)
 macro
 
#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...)
 macro
 
#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name)
 
#define JSON_USE_IMPLICIT_CONVERSIONS   1
 
#define JSON_EXPLICIT
 
#define JSON_DISABLE_ENUM_SERIALIZATION   0
 
#define JSON_USE_GLOBAL_UDLS   1
 
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
 
#define JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_    make_array<char_int_type>('F', 'H', 'N', 'S', 'T', 'Z', '[', '{')
 
#define JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_
 
lexicographical comparison operators
#define JSON_IMPLEMENT_OPERATOR(op, null_result, unordered_result, default_result)
 

타입정의

template<typename ... Ts>
using detail::void_t = typename make_void< Ts... >::type
 
template<template< class... > class Op, class... Args>
using detail::is_detected = typename detector< nonesuch, void, Op, Args... >::value_t
 
template<template< class... > class Op, class... Args>
using detail::detected_t = typename detector< nonesuch, void, Op, Args... >::type
 
template<class Default , template< class... > class Op, class... Args>
using detail::detected_or = detector< Default, void, Op, Args... >
 
template<class Default , template< class... > class Op, class... Args>
using detail::detected_or_t = typename detected_or< Default, Op, Args... >::type
 
template<class Expected , template< class... > class Op, class... Args>
using detail::is_detected_exact = std::is_same< Expected, detected_t< Op, Args... > >
 
template<class To , template< class... > class Op, class... Args>
using detail::is_detected_convertible = std::is_convertible< detected_t< Op, Args... >, To >
 
template<typename T >
using detail::uncvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type
 
template<bool B, typename T = void>
using detail::enable_if_t = typename std::enable_if< B, T >::type
 
template<size_t... Ints>
using detail::index_sequence = integer_sequence< size_t, Ints... >
 
template<typename T , T N>
using detail::make_integer_sequence = typename utility_internal::Gen< T, N >::type
 
template<size_t N>
using detail::make_index_sequence = make_integer_sequence< size_t, N >
 
template<typename... Ts>
using detail::index_sequence_for = make_index_sequence< sizeof...(Ts)>
 
using json = basic_json<>
 default specialization
 
using ordered_json = basic_json< nlohmann::ordered_map >
 specialization that maintains the insertion order of object keys
 
template<typename T >
using detail::mapped_type_t = typename T::mapped_type
 
template<typename T >
using detail::key_type_t = typename T::key_type
 
template<typename T >
using detail::value_type_t = typename T::value_type
 
template<typename T >
using detail::difference_type_t = typename T::difference_type
 
template<typename T >
using detail::pointer_t = typename T::pointer
 
template<typename T >
using detail::reference_t = typename T::reference
 
template<typename T >
using detail::iterator_category_t = typename T::iterator_category
 
template<typename T , typename... Args>
using detail::to_json_function = decltype(T::to_json(std::declval< Args >()...))
 
template<typename T , typename... Args>
using detail::from_json_function = decltype(T::from_json(std::declval< Args >()...))
 
template<typename T , typename U >
using detail::get_template_function = decltype(std::declval< T >().template get< U >())
 
template<typename T >
using detail::detect_key_compare = typename T::key_compare
 
template<typename BasicJsonType >
using detail::actual_object_comparator_t = typename actual_object_comparator< BasicJsonType >::type
 
template<typename R >
using detail::iterator_t = enable_if_t< is_range< R >::value, result_of_begin< decltype(std::declval< R & >())> >
 
template<typename T >
using detail::range_value_t = value_type_t< iterator_traits< iterator_t< T > > >
 
template<typename T >
using detail::is_json_pointer = is_specialization_of<::nlohmann::json_pointer, uncvref_t< T > >
 
template<typename T >
using detail::detect_is_transparent = typename T::is_transparent
 
template<typename Comparator , typename ObjectKeyType , typename KeyTypeCVRef , bool RequireTransparentComparator = true, bool ExcludeObjectKeyType = RequireTransparentComparator, typename KeyType = uncvref_t<KeyTypeCVRef>>
using detail::is_usable_as_key_type = typename std::conditional< is_comparable< Comparator, ObjectKeyType, KeyTypeCVRef >::value &&!(ExcludeObjectKeyType &&std::is_same< KeyType, ObjectKeyType >::value) &&(!RequireTransparentComparator||is_detected< detect_is_transparent, Comparator >::value) &&!is_json_pointer< KeyType >::value, std::true_type, std::false_type >::type
 
template<typename BasicJsonType , typename KeyTypeCVRef , bool RequireTransparentComparator = true, bool ExcludeObjectKeyType = RequireTransparentComparator, typename KeyType = uncvref_t<KeyTypeCVRef>>
using detail::is_usable_as_basic_json_key_type = typename std::conditional< is_usable_as_key_type< typename BasicJsonType::object_comparator_t, typename BasicJsonType::object_t::key_type, KeyTypeCVRef, RequireTransparentComparator, ExcludeObjectKeyType >::value &&!is_json_iterator_of< BasicJsonType, KeyType >::value, std::true_type, std::false_type >::type
 
template<typename ObjectType , typename KeyType >
using detail::detect_erase_with_key_type = decltype(std::declval< ObjectType & >().erase(std::declval< KeyType >()))
 
template<typename BasicJsonType , typename KeyType >
using detail::has_erase_with_key_type = typename std::conditional< is_detected< detect_erase_with_key_type, typename BasicJsonType::object_t, KeyType >::value, std::true_type, std::false_type >::type
 
template<typename... Types>
using detail::all_integral = conjunction< std::is_integral< Types >... >
 
template<typename... Types>
using detail::all_signed = conjunction< std::is_signed< Types >... >
 
template<typename... Types>
using detail::all_unsigned = conjunction< std::is_unsigned< Types >... >
 
template<typename... Types>
using detail::same_sign = std::integral_constant< bool, all_signed< Types... >::value||all_unsigned< Types... >::value >
 
template<typename OfType , typename T >
using detail::never_out_of_range = std::integral_constant< bool,(std::is_signed< OfType >::value &&(sizeof(T)< sizeof(OfType)))||(same_sign< OfType, T >::value &&sizeof(OfType)==sizeof(T)) >
 
template<bool Value>
using detail::bool_constant = std::integral_constant< bool, Value >
 
template<typename T >
using detail::is_c_string_uncvref = is_c_string< uncvref_t< T > >
 
template<typename StringType , typename Arg >
using detail::string_can_append = decltype(std::declval< StringType & >().append(std::declval< Arg && >()))
 
template<typename StringType , typename Arg >
using detail::detect_string_can_append = is_detected< string_can_append, StringType, Arg >
 
template<typename StringType , typename Arg >
using detail::string_can_append_op = decltype(std::declval< StringType & >()+=std::declval< Arg && >())
 
template<typename StringType , typename Arg >
using detail::detect_string_can_append_op = is_detected< string_can_append_op, StringType, Arg >
 
template<typename StringType , typename Arg >
using detail::string_can_append_iter = decltype(std::declval< StringType & >().append(std::declval< const Arg & >().begin(), std::declval< const Arg & >().end()))
 
template<typename StringType , typename Arg >
using detail::detect_string_can_append_iter = is_detected< string_can_append_iter, StringType, Arg >
 
template<typename StringType , typename Arg >
using detail::string_can_append_data = decltype(std::declval< StringType & >().append(std::declval< const Arg & >().data(), std::declval< const Arg & >().size()))
 
template<typename StringType , typename Arg >
using detail::detect_string_can_append_data = is_detected< string_can_append_data, StringType, Arg >
 
template<typename T >
using detail::null_function_t = decltype(std::declval< T & >().null())
 
template<typename T >
using detail::boolean_function_t = decltype(std::declval< T & >().boolean(std::declval< bool >()))
 
template<typename T , typename Integer >
using detail::number_integer_function_t = decltype(std::declval< T & >().number_integer(std::declval< Integer >()))
 
template<typename T , typename Unsigned >
using detail::number_unsigned_function_t = decltype(std::declval< T & >().number_unsigned(std::declval< Unsigned >()))
 
template<typename T , typename Float , typename String >
using detail::number_float_function_t = decltype(std::declval< T & >().number_float(std::declval< Float >(), std::declval< const String & >()))
 
template<typename T , typename String >
using detail::string_function_t = decltype(std::declval< T & >().string(std::declval< String & >()))
 
template<typename T , typename Binary >
using detail::binary_function_t = decltype(std::declval< T & >().binary(std::declval< Binary & >()))
 
template<typename T >
using detail::start_object_function_t = decltype(std::declval< T & >().start_object(std::declval< std::size_t >()))
 
template<typename T , typename String >
using detail::key_function_t = decltype(std::declval< T & >().key(std::declval< String & >()))
 
template<typename T >
using detail::end_object_function_t = decltype(std::declval< T & >().end_object())
 
template<typename T >
using detail::start_array_function_t = decltype(std::declval< T & >().start_array(std::declval< std::size_t >()))
 
template<typename T >
using detail::end_array_function_t = decltype(std::declval< T & >().end_array())
 
template<typename T , typename Exception >
using 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<class T >
using detail::json_base_class = typename std::conditional< std::is_same< T, void >::value, json_default_base, T >::type
 

열거형 타입

enum class  detail::value_t : std::uint8_t {
  detail::null , detail::object , detail::array , detail::string ,
  detail::boolean , detail::number_integer , detail::number_unsigned , detail::number_float ,
  detail::binary , detail::discarded
}
 the JSON type enumeration 더 자세히 ...
 
enum class  detail::cbor_tag_handler_t { detail::error , detail::ignore , detail::store }
 how to treat CBOR tags 더 자세히 ...
 
enum class  detail::error_handler_t { detail::strict , detail::replace , detail::ignore }
 how to treat decoding errors 더 자세히 ...
 

함수

bool detail::operator< (const value_t lhs, const value_t rhs) noexcept
 comparison operator for JSON types
 
template<typename StringType >
void detail::replace_substring (StringType &s, const StringType &f, const StringType &t)
 replace all occurrences of a substring by another string
 
template<typename StringType >
StringType detail::escape (StringType s)
 string escaping as described in RFC 6901 (Sect. 4)
 
template<typename StringType >
void detail::unescape (StringType &s)
 string unescaping as described in RFC 6901 (Sect. 4)
 
template<typename T , typename... Args>
constexpr std::array< T, sizeof...(Args)> detail::make_array (Args &&... args)
 
NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN NLOHMANN_CAN_CALL_STD_FUNC_IMPL (begin)
 
NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN NLOHMANN_CAN_CALL_STD_FUNC_IMPL (end)
 
template<typename T , typename U , enable_if_t< !std::is_same< T, U >::value, int > = 0>
detail::conditional_static_cast (U value)
 
template<typename OfType , typename T >
constexpr bool detail::value_in_range_of (T val)
 
template<typename T >
constexpr bool detail::impl::is_c_string ()
 
template<typename T >
constexpr bool detail::impl::is_transparent ()
 
std::size_t detail::concat_length ()
 
template<typename... Args>
std::size_t detail::concat_length (const char *cstr, const Args &... rest)
 
template<typename StringType , typename... Args>
std::size_t detail::concat_length (const StringType &str, const Args &... rest)
 
template<typename... Args>
std::size_t detail::concat_length (const char, const Args &... rest)
 
template<typename OutStringType >
void detail::concat_into (OutStringType &)
 
template<typename OutStringType , typename Arg , typename... Args, enable_if_t< !detect_string_can_append< OutStringType, Arg >::value &&detect_string_can_append_op< OutStringType, Arg >::value, int > = 0>
void detail::concat_into (OutStringType &out, Arg &&arg, Args &&... rest)
 
template<typename OutStringType , typename Arg , typename... Args, enable_if_t< !detect_string_can_append< OutStringType, Arg >::value &&!detect_string_can_append_op< OutStringType, Arg >::value &&detect_string_can_append_iter< OutStringType, Arg >::value, int > = 0>
void detail::concat_into (OutStringType &out, const Arg &arg, Args &&... rest)
 
template<typename OutStringType = std::string, typename... Args>
OutStringType detail::concat (Args &&... args)
 
template<typename StringType >
void detail::int_to_string (StringType &target, std::size_t value)
 
template<typename StringType >
StringType detail::to_string (std::size_t value)
 
template<std::size_t N, typename IteratorType , enable_if_t< N==0, int > = 0>
auto 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 detail::to_json (BasicJsonType &j, T b) noexcept
 
template<typename BasicJsonType , typename BoolRef , enable_if_t<((std::is_same< std::vector< bool >::reference, BoolRef >::value &&!std::is_same< std::vector< bool >::reference, typename BasicJsonType::boolean_t & >::value)||(std::is_same< std::vector< bool >::const_reference, BoolRef >::value &&!std::is_same< detail::uncvref_t< std::vector< bool >::const_reference >, typename BasicJsonType::boolean_t >::value)) &&std::is_convertible< const BoolRef &, typename BasicJsonType::boolean_t >::value, int > = 0>
void detail::to_json (BasicJsonType &j, const BoolRef &b) noexcept
 
template<typename BasicJsonType , typename CompatibleString , enable_if_t< std::is_constructible< typename BasicJsonType::string_t, CompatibleString >::value, int > = 0>
void detail::to_json (BasicJsonType &j, const CompatibleString &s)
 
template<typename BasicJsonType >
void 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 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 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 detail::to_json (BasicJsonType &j, CompatibleNumberIntegerType val) noexcept
 
template<typename BasicJsonType , typename EnumType , enable_if_t< std::is_enum< EnumType >::value, int > = 0>
void detail::to_json (BasicJsonType &j, EnumType e) noexcept
 
template<typename BasicJsonType >
void 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 &&!is_compatible_object_type< BasicJsonType, CompatibleArrayType >::value &&!is_compatible_string_type< BasicJsonType, CompatibleArrayType >::value &&!std::is_same< typename BasicJsonType::binary_t, CompatibleArrayType >::value &&!is_basic_json< CompatibleArrayType >::value, int > = 0>
void detail::to_json (BasicJsonType &j, const CompatibleArrayType &arr)
 
template<typename BasicJsonType >
void detail::to_json (BasicJsonType &j, const typename BasicJsonType::binary_t &bin)
 
template<typename BasicJsonType , typename T , enable_if_t< std::is_convertible< T, BasicJsonType >::value, int > = 0>
void detail::to_json (BasicJsonType &j, const std::valarray< T > &arr)
 
template<typename BasicJsonType >
void 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 &&!is_basic_json< CompatibleObjectType >::value, int > = 0>
void detail::to_json (BasicJsonType &j, const CompatibleObjectType &obj)
 
template<typename BasicJsonType >
void detail::to_json (BasicJsonType &j, typename BasicJsonType::object_t &&obj)
 
template<typename BasicJsonType , typename T , std::size_t N, enable_if_t< !std::is_constructible< typename BasicJsonType::string_t, const T(&)[N]>::value, int > = 0>
void 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 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 detail::to_json (BasicJsonType &j, const T &b)
 
template<typename BasicJsonType , typename Tuple , std::size_t... Idx>
void detail::to_json_tuple_impl (BasicJsonType &j, const Tuple &t, index_sequence< Idx... >)
 
template<typename BasicJsonType , typename Tuple >
void detail::to_json_tuple_impl (BasicJsonType &j, const Tuple &, index_sequence<>)
 
constexpr std::size_t detail::unknown_size ()
 
bool detail::little_endianness (int num=1) noexcept
 determine system byte order
 
template<typename RefStringTypeLhs , typename RefStringTypeRhs >
bool operator== (const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
 
template<typename RefStringTypeLhs , typename StringType = typename json_pointer<RefStringTypeLhs>::string_t>
bool operator== (const json_pointer< RefStringTypeLhs > &lhs, const StringType &rhs)
 
template<typename RefStringTypeRhs , typename StringType = typename json_pointer<RefStringTypeRhs>::string_t>
bool operator== (const StringType &lhs, const json_pointer< RefStringTypeRhs > &rhs)
 
template<typename RefStringTypeLhs , typename RefStringTypeRhs >
bool operator!= (const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
 
template<typename RefStringTypeLhs , typename StringType = typename json_pointer<RefStringTypeLhs>::string_t>
bool operator!= (const json_pointer< RefStringTypeLhs > &lhs, const StringType &rhs)
 
template<typename RefStringTypeRhs , typename StringType = typename json_pointer<RefStringTypeRhs>::string_t>
bool operator!= (const StringType &lhs, const json_pointer< RefStringTypeRhs > &rhs)
 
template<typename RefStringTypeLhs , typename RefStringTypeRhs >
bool operator< (const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
 
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string (const NLOHMANN_BASIC_JSON_TPL &j)
 user-defined to_string function for JSON values
 
nlohmann::json literals::operator""_json (const char *s, std::size_t n)
 user-defined string literal for JSON values
 
nlohmann::json::json_pointer literals::operator""_json_pointer (const char *s, std::size_t n)
 user-defined string literal for JSON pointer
 
NLOHMANN_BASIC_JSON_TPL_DECLARATION void std::swap (nlohmann::NLOHMANN_BASIC_JSON_TPL &j1, nlohmann::NLOHMANN_BASIC_JSON_TPL &j2) noexcept(//NOLINT(readability-inconsistent-declaration-parameter-name, cert-dcl58-cpp) is_nothrow_move_constructible< nlohmann::NLOHMANN_BASIC_JSON_TPL >::value &&//NOLINT(misc-redundant-expression, cppcoreguidelines-noexcept-swap, performance-noexcept-swap) is_nothrow_move_assignable< nlohmann::NLOHMANN_BASIC_JSON_TPL >::value)
 exchanges the values of two JSON objects
 

상세한 설명

JSON 처리 유틸리티 헤더 파일

이 파일은 JSON 데이터를 처리하기 위한 유틸리티 함수와 클래스의 선언을 포함합니다.

매크로 Documentation

◆ JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_

#define JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_
값:
make_array<bjd_type>( \
bjd_type{'B', "byte"}, \
bjd_type{'C', "char"}, \
bjd_type{'D', "double"}, \
bjd_type{'I', "int16"}, \
bjd_type{'L', "int64"}, \
bjd_type{'M', "uint64"}, \
bjd_type{'U', "uint8"}, \
bjd_type{'d', "single"}, \
bjd_type{'i', "int8"}, \
bjd_type{'l', "int32"}, \
bjd_type{'m', "uint32"}, \
bjd_type{'u', "uint16"})

◆ NLOHMANN_BASIC_JSON_TPL

#define NLOHMANN_BASIC_JSON_TPL
값:
basic_json<ObjectType, ArrayType, StringType, BooleanType, \
NumberIntegerType, NumberUnsignedType, NumberFloatType, \
AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>
namespace for Niels Lohmann
Definition json.hpp:20208

◆ NLOHMANN_BASIC_JSON_TPL_DECLARATION

#define NLOHMANN_BASIC_JSON_TPL_DECLARATION
값:
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, \
class BinaryType, \
class CustomBaseClass>

◆ NLOHMANN_CAN_CALL_STD_FUNC_IMPL

#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL (   std_name)
값:
namespace detail { \
using std::std_name; \
\
template<typename... T> \
using result_of_##std_name = decltype(std_name(std::declval<T>()...)); \
} \
\
namespace detail2 { \
struct std_name##_tag \
{ \
}; \
\
template<typename... T> \
std_name##_tag std_name(T&&...); \
\
template<typename... T> \
using result_of_##std_name = decltype(std_name(std::declval<T>()...)); \
\
template<typename... T> \
struct would_call_std_##std_name \
{ \
static constexpr auto const value = ::nlohmann::detail:: \
is_detected_exact<std_name##_tag, result_of_##std_name, T...>::value; \
}; \
} /* namespace detail2 */ \
\
template<typename... T> \
struct would_call_std_##std_name : detail2::would_call_std_##std_name<T...> \
{ \
}
detail namespace with internal helper functions
Definition json.hpp:265

◆ NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE

#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE (   Type,
  BaseType,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast<const BaseType &>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast<BaseType&>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }

macro

Since
version 3.12.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/

◆ NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE

#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE (   Type,
  BaseType,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast<const BaseType &>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) }

macro

Since
version 3.12.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/

◆ NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT

#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT (   Type,
  BaseType,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast<const BaseType&>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast<BaseType&>(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) }

macro

Since
version 3.12.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/

◆ NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE

#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE (   Type,
  BaseType,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast<const BaseType &>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast<BaseType&>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }

macro

Since
version 3.12.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/

◆ NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE (   Type,
  BaseType,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast<const BaseType &>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) }

macro

Since
version 3.12.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/

◆ NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT

#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT (   Type,
  BaseType,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast<const BaseType &>(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast<BaseType&>(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) }

macro

Since
version 3.12.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/

◆ NLOHMANN_DEFINE_TYPE_INTRUSIVE

#define NLOHMANN_DEFINE_TYPE_INTRUSIVE (   Type,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }

macro

Since
version 3.9.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/

◆ NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE

#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE (   Type,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) }

macro

Since
version 3.11.3
참고
https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/

◆ NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT

#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT (   Type,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) }

macro

Since
version 3.11.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE

#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (   Type,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }

macro

Since
version 3.9.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE (   Type,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) }

macro

Since
version 3.11.3
참고
https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT

#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT (   Type,
  ... 
)
값:
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
template<typename BasicJsonType, nlohmann::detail::enable_if_t<nlohmann::detail::is_basic_json<BasicJsonType>::value, int> = 0> \
void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) }

macro

Since
version 3.11.0
참고
https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/

◆ NLOHMANN_JSON_ABI_TAGS

#define NLOHMANN_JSON_ABI_TAGS
값:
NLOHMANN_JSON_ABI_TAGS_CONCAT( \
NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \
NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS)

◆ NLOHMANN_JSON_NAMESPACE

#define NLOHMANN_JSON_NAMESPACE
값:
nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
NLOHMANN_JSON_ABI_TAGS, \
NLOHMANN_JSON_NAMESPACE_VERSION)

◆ NLOHMANN_JSON_NAMESPACE_BEGIN

#define NLOHMANN_JSON_NAMESPACE_BEGIN
값:
namespace nlohmann \
{ \
inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
NLOHMANN_JSON_ABI_TAGS, \
NLOHMANN_JSON_NAMESPACE_VERSION) \
{

◆ NLOHMANN_JSON_NAMESPACE_END

#define NLOHMANN_JSON_NAMESPACE_END
값:
} /* namespace (inline namespace) NOLINT(readability/namespace) */ \
}

◆ NLOHMANN_JSON_NAMESPACE_VERSION

#define NLOHMANN_JSON_NAMESPACE_VERSION
값:
NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
NLOHMANN_JSON_VERSION_MINOR, \
NLOHMANN_JSON_VERSION_PATCH)

◆ NLOHMANN_JSON_SERIALIZE_ENUM

#define NLOHMANN_JSON_SERIALIZE_ENUM (   ENUM_TYPE,
  ... 
)
값:
template<typename BasicJsonType> \
inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \
{ \
/* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \
static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE " must be an enum!"); \
/* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on <array> */ \
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) \
{ \
/* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \
static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE " must be an enum!"); \
/* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on <array> */ \
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

타입정의 Documentation

◆ json

using json = basic_json<>

default specialization

참고
https://json.nlohmann.me/api/json/

◆ ordered_json

using ordered_json = basic_json<nlohmann::ordered_map>

specialization that maintains the insertion order of object keys

참고
https://json.nlohmann.me/api/ordered_json/

함수 Documentation

◆ operator!=() [1/3]

template<typename RefStringTypeLhs , typename RefStringTypeRhs >
bool operator!= ( const json_pointer< RefStringTypeLhs > &  lhs,
const json_pointer< RefStringTypeRhs > &  rhs 
)
inlinenoexcept

◆ operator!=() [2/3]

template<typename RefStringTypeLhs , typename StringType = typename json_pointer<RefStringTypeLhs>::string_t>
bool operator!= ( const json_pointer< RefStringTypeLhs > &  lhs,
const StringType &  rhs 
)
inline

◆ operator!=() [3/3]

template<typename RefStringTypeRhs , typename StringType = typename json_pointer<RefStringTypeRhs>::string_t>
bool operator!= ( const StringType &  lhs,
const json_pointer< RefStringTypeRhs > &  rhs 
)
inline

◆ operator""_json()

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

user-defined string literal for JSON values

참고
https://json.nlohmann.me/api/basic_json/operator_literal_json/

◆ operator""_json_pointer()

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

user-defined string literal for JSON pointer

참고
https://json.nlohmann.me/api/basic_json/operator_literal_json_pointer/

◆ operator==() [1/3]

template<typename RefStringTypeLhs , typename RefStringTypeRhs >
bool operator== ( const json_pointer< RefStringTypeLhs > &  lhs,
const json_pointer< RefStringTypeRhs > &  rhs 
)
inlinenoexcept

◆ operator==() [2/3]

template<typename RefStringTypeLhs , typename StringType = typename json_pointer<RefStringTypeLhs>::string_t>
bool operator== ( const json_pointer< RefStringTypeLhs > &  lhs,
const StringType &  rhs 
)
inline

◆ operator==() [3/3]

template<typename RefStringTypeRhs , typename StringType = typename json_pointer<RefStringTypeRhs>::string_t>
bool operator== ( const StringType &  lhs,
const json_pointer< RefStringTypeRhs > &  rhs 
)
inline

◆ swap()

NLOHMANN_BASIC_JSON_TPL_DECLARATION void std::swap ( nlohmann::NLOHMANN_BASIC_JSON_TPL &  j1,
nlohmann::NLOHMANN_BASIC_JSON_TPL &  j2 
)
inlinenoexcept

exchanges the values of two JSON objects

참고
https://json.nlohmann.me/api/basic_json/std_swap/

◆ to_string()

NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string ( const NLOHMANN_BASIC_JSON_TPL &  j)

user-defined to_string function for JSON values

참고
https://json.nlohmann.me/api/basic_json/to_string/