Crossfire Server, Trunk
nlohmann::detail Namespace Reference

detail namespace with internal helper functions More...

Namespaces

 container_input_adapter_factory_impl
 
 dtoa_impl
 implements the Grisu2 algorithm for binary to decimal floating-point conversion.
 
 utility_internal
 

Data Structures

class  binary_reader
 deserialization of CBOR, MessagePack, and UBJSON values More...
 
class  binary_writer
 serialization to CBOR and MessagePack values More...
 
struct  conjunction
 
struct  conjunction< B1 >
 
struct  conjunction< B1, Bn... >
 
struct  detector
 
struct  detector< Default, void_t< Op< Args... > >, Op, Args... >
 
class  exception
 general exception of the basic_json class More...
 
struct  external_constructor
 
struct  external_constructor< value_t::array >
 
struct  external_constructor< value_t::binary >
 
struct  external_constructor< value_t::boolean >
 
struct  external_constructor< value_t::number_float >
 
struct  external_constructor< value_t::number_integer >
 
struct  external_constructor< value_t::number_unsigned >
 
struct  external_constructor< value_t::object >
 
struct  external_constructor< value_t::string >
 
class  file_input_adapter
 
struct  from_json_fn
 
struct  has_from_json
 
struct  has_from_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >
 
struct  has_non_default_from_json
 
struct  has_non_default_from_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >
 
struct  has_to_json
 
struct  has_to_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >
 
struct  identity_tag
 
class  input_stream_adapter
 
struct  integer_sequence
 
struct  internal_iterator
 an iterator value More...
 
class  invalid_iterator
 exception indicating errors with iterators More...
 
struct  is_basic_json
 
struct  is_basic_json< NLOHMANN_BASIC_JSON_TPL >
 
struct  is_compatible_array_type
 
struct  is_compatible_array_type_impl
 
struct  is_compatible_array_type_impl< BasicJsonType, CompatibleArrayType, enable_if_t< is_detected< value_type_t, CompatibleArrayType >::value &&is_detected< iterator_t, CompatibleArrayType >::value &&!is_iterator_traits< iterator_traits< CompatibleArrayType > >::value > >
 
struct  is_compatible_integer_type
 
struct  is_compatible_integer_type_impl
 
struct  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  is_compatible_object_type
 
struct  is_compatible_object_type_impl
 
struct  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  is_compatible_string_type
 
struct  is_compatible_string_type_impl
 
struct  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  is_compatible_type
 
struct  is_compatible_type_impl
 
struct  is_compatible_type_impl< BasicJsonType, CompatibleType, enable_if_t< is_complete_type< CompatibleType >::value > >
 
struct  is_complete_type
 
struct  is_complete_type< T, decltype(void(sizeof(T)))>
 
struct  is_constructible
 
struct  is_constructible< const std::pair< T1, T2 > >
 
struct  is_constructible< const std::tuple< Ts... > >
 
struct  is_constructible< std::pair< T1, T2 > >
 
struct  is_constructible< std::tuple< Ts... > >
 
struct  is_constructible_array_type
 
struct  is_constructible_array_type_impl
 
struct  is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, enable_if_t< !std::is_same< ConstructibleArrayType, typename BasicJsonType::value_type >::value &&is_default_constructible< ConstructibleArrayType >::value &&(std::is_move_assignable< ConstructibleArrayType >::value||std::is_copy_assignable< ConstructibleArrayType >::value)&&is_detected< value_type_t, ConstructibleArrayType >::value &&is_detected< iterator_t, ConstructibleArrayType >::value &&is_complete_type< detected_t< value_type_t, ConstructibleArrayType > >::value > >
 
struct  is_constructible_array_type_impl< BasicJsonType, ConstructibleArrayType, enable_if_t< std::is_same< ConstructibleArrayType, typename BasicJsonType::value_type >::value > >
 
struct  is_constructible_object_type
 
struct  is_constructible_object_type_impl
 
struct  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  is_constructible_string_type
 
struct  is_constructible_string_type_impl
 
struct  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  is_constructible_tuple
 
struct  is_constructible_tuple< T1, std::tuple< Args... > >
 
struct  is_default_constructible
 
struct  is_default_constructible< const std::pair< T1, T2 > >
 
struct  is_default_constructible< const std::tuple< Ts... > >
 
struct  is_default_constructible< std::pair< T1, T2 > >
 
struct  is_default_constructible< std::tuple< Ts... > >
 
struct  is_detected_lazy
 
struct  is_getable
 
struct  is_iterator_of_multibyte
 
struct  is_iterator_traits
 
struct  is_iterator_traits< iterator_traits< T > >
 
struct  is_json_ref
 
struct  is_json_ref< json_ref< T > >
 
struct  is_sax
 
struct  is_sax_static_asserts
 
class  iter_impl
 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  iteration_proxy
 proxy class for the items() function More...
 
class  iteration_proxy_value
 
class  iterator_input_adapter
 
struct  iterator_input_adapter_factory
 
struct  iterator_input_adapter_factory< IteratorType, enable_if_t< is_iterator_of_multibyte< IteratorType >::value > >
 
struct  iterator_traits
 
struct  iterator_traits< T *, enable_if_t< std::is_object< T >::value > >
 
struct  iterator_traits< T, enable_if_t< !std::is_pointer< T >::value > >
 
struct  iterator_types
 
struct  iterator_types< It, void_t< typename It::difference_type, typename It::value_type, typename It::pointer, typename It::reference, typename It::iterator_category > >
 
class  json_ref
 
class  json_reverse_iterator
 a template for a reverse iterator class More...
 
class  json_sax_acceptor
 
class  json_sax_dom_callback_parser
 
class  json_sax_dom_parser
 SAX implementation to create a JSON value from SAX events. More...
 
class  lexer
 lexical analysis More...
 
class  lexer_base
 
struct  make_void
 
struct  negation
 
struct  nonesuch
 
class  other_error
 exception indicating other library errors More...
 
class  out_of_range
 exception indicating access out of the defined range More...
 
class  output_adapter
 
struct  output_adapter_protocol
 abstract output adapter interface More...
 
class  output_stream_adapter
 output adapter for output streams More...
 
class  output_string_adapter
 output adapter for basic_string More...
 
class  output_vector_adapter
 output adapter for byte vectors More...
 
class  parse_error
 exception indicating a parse error More...
 
class  parser
 syntax analysis More...
 
struct  position_t
 struct to capture the start position of the current token More...
 
class  primitive_iterator_t
 
struct  priority_tag
 
struct  priority_tag< 0 >
 
class  serializer
 
class  span_input_adapter
 
struct  static_const
 
struct  to_json_fn
 
class  type_error
 exception indicating executing a member function with a wrong type More...
 
class  wide_string_input_adapter
 
struct  wide_string_input_helper
 
struct  wide_string_input_helper< BaseInputAdapter, 2 >
 
struct  wide_string_input_helper< BaseInputAdapter, 4 >
 

Typedefs

template<typename T , typename Binary >
using binary_function_t = decltype(std::declval< T & >().binary(std::declval< Binary & >()))
 
template<typename T >
using boolean_function_t = decltype(std::declval< T & >().boolean(std::declval< bool >()))
 
using contiguous_bytes_input_adapter = decltype(input_adapter(std::declval< const char * >(), std::declval< const char * >()))
 
template<class Default , template< class... > class Op, class... Args>
using detected_or = detector< Default, void, Op, Args... >
 
template<class Default , template< class... > class Op, class... Args>
using detected_or_t = typename detected_or< Default, Op, Args... >::type
 
template<template< class... > class Op, class... Args>
using detected_t = typename detector< nonesuch, void, Op, Args... >::type
 
template<typename T >
using difference_type_t = typename T::difference_type
 
template<bool B, typename T = void>
using enable_if_t = typename std::enable_if< B, T >::type
 
template<typename T >
using end_array_function_t = decltype(std::declval< T & >().end_array())
 
template<typename T >
using end_object_function_t = decltype(std::declval< T & >().end_object())
 
template<typename T , typename... Args>
using from_json_function = decltype(T::from_json(std::declval< Args >()...))
 
template<typename T , typename U >
using get_template_function = decltype(std::declval< T >().template get< U >())
 
template<size_t... Ints>
using index_sequence = integer_sequence< size_t, Ints... >
 
template<typename... Ts>
using index_sequence_for = make_index_sequence< sizeof...(Ts)>
 
template<template< class... > class Op, class... Args>
using is_detected = typename detector< nonesuch, void, Op, Args... >::value_t
 
template<class To , template< class... > class Op, class... Args>
using is_detected_convertible = std::is_convertible< detected_t< Op, Args... >, To >
 
template<class Expected , template< class... > class Op, class... Args>
using is_detected_exact = std::is_same< Expected, detected_t< Op, Args... > >
 
template<typename T >
using iterator_category_t = typename T::iterator_category
 
template<typename T >
using iterator_t = typename T::iterator
 
template<typename T , typename String >
using key_function_t = decltype(std::declval< T & >().key(std::declval< String & >()))
 
template<typename T >
using key_type_t = typename T::key_type
 
template<size_t N>
using make_index_sequence = make_integer_sequence< size_t, N >
 
template<typename T , T N>
using make_integer_sequence = typename utility_internal::Gen< T, N >::type
 
template<typename T >
using mapped_type_t = typename T::mapped_type
 
template<typename T >
using null_function_t = decltype(std::declval< T & >().null())
 
template<typename T , typename Float , typename String >
using number_float_function_t = decltype(std::declval< T & >().number_float(std::declval< Float >(), std::declval< const String & >()))
 
template<typename T , typename Integer >
using number_integer_function_t = decltype(std::declval< T & >().number_integer(std::declval< Integer >()))
 
template<typename T , typename Unsigned >
using number_unsigned_function_t = decltype(std::declval< T & >().number_unsigned(std::declval< Unsigned >()))
 
template<typename CharType >
using output_adapter_t = std::shared_ptr< output_adapter_protocol< CharType > >
 a type to simplify interfaces More...
 
template<typename T , typename Exception >
using 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 BasicJsonType >
using parser_callback_t = std::function< bool(int, parse_event_t, BasicJsonType &)>
 
template<typename T >
using pointer_t = typename T::pointer
 
template<typename T >
using reference_t = typename T::reference
 
template<typename T >
using start_array_function_t = decltype(std::declval< T & >().start_array(std::declval< std::size_t >()))
 
template<typename T >
using start_object_function_t = decltype(std::declval< T & >().start_object(std::declval< std::size_t >()))
 
template<typename T , typename String >
using string_function_t = decltype(std::declval< T & >().string(std::declval< String & >()))
 
template<typename T , typename... Args>
using to_json_function = decltype(T::to_json(std::declval< Args >()...))
 
template<typename T >
using uncvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type
 
template<typename T >
using value_type_t = typename T::value_type
 
template<typename ... Ts>
using void_t = typename make_void< Ts... >::type
 

Enumerations

enum  cbor_tag_handler_t { cbor_tag_handler_t::error, cbor_tag_handler_t::ignore, cbor_tag_handler_t::store }
 how to treat CBOR tags More...
 
enum  error_handler_t { error_handler_t::strict, error_handler_t::replace, error_handler_t::ignore }
 how to treat decoding errors More...
 
enum  input_format_t {
  input_format_t::json, input_format_t::cbor, input_format_t::msgpack, input_format_t::ubjson,
  input_format_t::bson
}
 the supported input formats More...
 
enum  parse_event_t : std::uint8_t {
  parse_event_t::object_start, parse_event_t::object_end, parse_event_t::array_start, parse_event_t::array_end,
  parse_event_t::key, parse_event_t::value
}
 
enum  value_t : std::uint8_t {
  value_t::null, value_t::object, value_t::array, value_t::string,
  value_t::boolean, value_t::number_integer, value_t::number_unsigned, value_t::number_float,
  value_t::binary, value_t::discarded
}
 the JSON type enumeration More...
 

Functions

std::size_t combine (std::size_t seed, std::size_t h) noexcept
 
template<typename T , typename U , enable_if_t< !std::is_same< T, U >::value, int > = 0>
conditional_static_cast (U value)
 
std::string escape (std::string s)
 string escaping as described in RFC 6901 (Sect. 4) More...
 
template<typename BasicJsonType , typename T , std::size_t N>
auto from_json (BasicJsonType &&j, identity_tag< std::array< T, N >> tag) -> decltype(from_json_inplace_array_impl(std::forward< BasicJsonType >(j), tag, make_index_sequence< N >
 
template<typename BasicJsonType , typename TupleRelated >
auto from_json (BasicJsonType &&j, TupleRelated &&t) -> decltype(from_json_tuple_impl(std::forward< BasicJsonType >(j), std::forward< TupleRelated >(t), priority_tag< 3 >
 
template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::number_unsigned_t >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::number_integer_t >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::number_float_t >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::boolean_t >::value, int > = 0>
void from_json (const BasicJsonType &j, ArithmeticType &val)
 
template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< is_constructible_array_type< BasicJsonType, ConstructibleArrayType >::value &&!is_constructible_object_type< BasicJsonType, ConstructibleArrayType >::value &&!is_constructible_string_type< BasicJsonType, ConstructibleArrayType >::value &&!std::is_same< ConstructibleArrayType, typename BasicJsonType::binary_t >::value &&!is_basic_json< ConstructibleArrayType >::value, int > = 0>
auto from_json (const BasicJsonType &j, ConstructibleArrayType &arr) -> decltype(from_json_array_impl(j, arr, priority_tag< 3 >
 
template<typename BasicJsonType , typename ConstructibleObjectType , enable_if_t< is_constructible_object_type< BasicJsonType, ConstructibleObjectType >::value, int > = 0>
void from_json (const BasicJsonType &j, ConstructibleObjectType &obj)
 
template<typename BasicJsonType , typename ConstructibleStringType , enable_if_t< is_constructible_string_type< BasicJsonType, ConstructibleStringType >::value &&!std::is_same< typename BasicJsonType::string_t, ConstructibleStringType >::value, int > = 0>
void from_json (const BasicJsonType &j, ConstructibleStringType &s)
 
template<typename BasicJsonType , typename EnumType , enable_if_t< std::is_enum< EnumType >::value, int > = 0>
void from_json (const BasicJsonType &j, EnumType &e)
 
template<typename BasicJsonType , typename T , typename Allocator , enable_if_t< is_getable< BasicJsonType, T >::value, int > = 0>
void from_json (const BasicJsonType &j, std::forward_list< T, Allocator > &l)
 
template<typename BasicJsonType , typename Key , typename Value , typename Compare , typename Allocator , typename = enable_if_t < !std::is_constructible < typename BasicJsonType::string_t, Key >::value >>
void 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 < !std::is_constructible < typename BasicJsonType::string_t, Key >::value >>
void from_json (const BasicJsonType &j, std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > &m)
 
template<typename BasicJsonType , typename T , enable_if_t< is_getable< BasicJsonType, T >::value, int > = 0>
void from_json (const BasicJsonType &j, std::valarray< T > &l)
 
template<typename BasicJsonType , typename T , std::size_t N>
auto from_json (const BasicJsonType &j, T(&arr)[N]) -> decltype(j.template get< T >(), void())
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename BasicJsonType::binary_t &bin)
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename BasicJsonType::boolean_t &b)
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename BasicJsonType::number_float_t &val)
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename BasicJsonType::number_integer_t &val)
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename BasicJsonType::number_unsigned_t &val)
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename BasicJsonType::string_t &s)
 
template<typename BasicJsonType >
void from_json (const BasicJsonType &j, typename std::nullptr_t &n)
 
template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< std::is_assignable< ConstructibleArrayType &, ConstructibleArrayType >::value, int > = 0>
void from_json_array_impl (const BasicJsonType &j, ConstructibleArrayType &arr, priority_tag< 0 >)
 
template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< std::is_assignable< ConstructibleArrayType &, ConstructibleArrayType >::value, int > = 0>
auto 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 T , std::size_t N>
auto from_json_array_impl (const BasicJsonType &j, std::array< T, N > &arr, priority_tag< 2 >) -> decltype(j.template get< T >(), void())
 
template<typename BasicJsonType >
void from_json_array_impl (const BasicJsonType &j, typename BasicJsonType::array_t &arr, priority_tag< 3 >)
 
template<typename BasicJsonType , typename T , std::size_t... Idx>
std::array< T, sizeof...(Idx)> from_json_inplace_array_impl (BasicJsonType &&j, identity_tag< std::array< T, sizeof...(Idx)>>, index_sequence< Idx... >)
 
template<typename BasicJsonType , class A1 , class A2 >
std::pair< A1, A2 > from_json_tuple_impl (BasicJsonType &&j, identity_tag< std::pair< A1, A2 >>, priority_tag< 0 >)
 
template<typename BasicJsonType , typename... Args>
std::tuple< Args... > from_json_tuple_impl (BasicJsonType &&j, identity_tag< std::tuple< Args... >>, priority_tag< 2 >)
 
template<typename BasicJsonType , typename A1 , typename A2 >
void from_json_tuple_impl (BasicJsonType &&j, std::pair< A1, A2 > &p, priority_tag< 1 >)
 
template<typename BasicJsonType , typename... Args>
void from_json_tuple_impl (BasicJsonType &&j, std::tuple< Args... > &t, priority_tag< 3 >)
 
template<typename BasicJsonType , typename... Args, std::size_t... Idx>
std::tuple< Args... > from_json_tuple_impl_base (BasicJsonType &&j, index_sequence< Idx... >)
 
template<std::size_t N, typename IteratorType , enable_if_t< N==0, int > = 0>
auto get (const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.key())
 
j template get< typename ConstructibleArrayType::value_type > ()
 
template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::boolean_t >::value, int > = 0>
void get_arithmetic_value (const BasicJsonType &j, ArithmeticType &val)
 
template<typename BasicJsonType >
std::size_t hash (const BasicJsonType &j)
 hash a JSON value More...
 
template<typename CharT , typename std::enable_if< std::is_pointer< CharT >::value &&!std::is_array< CharT >::value &&std::is_integral< typename std::remove_pointer< CharT >::type >::value &&sizeof(typename std::remove_pointer< CharT >::type)==1, int >::type = 0>
contiguous_bytes_input_adapter input_adapter (CharT b)
 
template<typename ContainerType >
container_input_adapter_factory_impl::container_input_adapter_factory< ContainerType >::adapter_type input_adapter (const ContainerType &container)
 
template<typename IteratorType >
iterator_input_adapter_factory< IteratorType >::adapter_type input_adapter (IteratorType first, IteratorType last)
 
file_input_adapter input_adapter (std::FILE *file)
 
input_stream_adapter input_adapter (std::istream &&stream)
 
input_stream_adapter input_adapter (std::istream &stream)
 
template<typename T , std::size_t N>
auto input_adapter (T(&array)[N]) -> decltype(input_adapter(array, array+N))
 
template<typename string_type >
void int_to_string (string_type &target, std::size_t value)
 
static bool little_endianess (int num=1) noexcept
 determine system byte order More...
 
bool operator< (const value_t lhs, const value_t rhs) noexcept
 comparison operator for JSON types More...
 
void replace_substring (std::string &s, const std::string &f, const std::string &t)
 replace all occurrences of a substring by another string More...
 
template<typename FloatType >
JSON_HEDLEY_RETURNS_NON_NULL char * to_chars (char *first, const char *last, FloatType value)
 generates a decimal representation of the floating-point number value in [first, last). More...
 
template<typename BasicJsonType , typename CompatibleNumberIntegerType , enable_if_t< is_compatible_integer_type< typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType >::value, int > = 0>
void to_json (BasicJsonType &j, CompatibleNumberIntegerType val) noexcept
 
template<typename BasicJsonType , typename CompatibleNumberUnsignedType , enable_if_t< is_compatible_integer_type< typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType >::value, int > = 0>
void to_json (BasicJsonType &j, CompatibleNumberUnsignedType val) noexcept
 
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 to_json (BasicJsonType &j, const CompatibleArrayType &arr)
 
template<typename BasicJsonType , typename CompatibleObjectType , enable_if_t< is_compatible_object_type< BasicJsonType, CompatibleObjectType >::value &&!is_basic_json< CompatibleObjectType >::value, int > = 0>
void to_json (BasicJsonType &j, const CompatibleObjectType &obj)
 
template<typename BasicJsonType , typename CompatibleString , enable_if_t< std::is_constructible< typename BasicJsonType::string_t, CompatibleString >::value, int > = 0>
void to_json (BasicJsonType &j, const CompatibleString &s)
 
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 to_json (BasicJsonType &j, const std::pair< T1, T2 > &p)
 
template<typename BasicJsonType , typename T , enable_if_t< std::is_convertible< T, BasicJsonType >::value, int > = 0>
void to_json (BasicJsonType &j, const std::valarray< T > &arr)
 
template<typename BasicJsonType >
void to_json (BasicJsonType &j, const std::vector< bool > &e)
 
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< T, iteration_proxy_value< typename BasicJsonType::iterator >>::value, int > = 0>
void to_json (BasicJsonType &j, const T &b)
 
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 to_json (BasicJsonType &j, const T(&arr)[N])
 
template<typename BasicJsonType >
void to_json (BasicJsonType &j, const typename BasicJsonType::binary_t &bin)
 
template<typename BasicJsonType , typename EnumType , enable_if_t< std::is_enum< EnumType >::value, int > = 0>
void to_json (BasicJsonType &j, EnumType e) noexcept
 
template<typename BasicJsonType , typename FloatType , enable_if_t< std::is_floating_point< FloatType >::value, int > = 0>
void to_json (BasicJsonType &j, FloatType val) noexcept
 
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< T, typename BasicJsonType::boolean_t >::value, int > = 0>
void to_json (BasicJsonType &j, T b) noexcept
 
template<typename BasicJsonType >
void to_json (BasicJsonType &j, typename BasicJsonType::array_t &&arr)
 
template<typename BasicJsonType >
void to_json (BasicJsonType &j, typename BasicJsonType::object_t &&obj)
 
template<typename BasicJsonType >
void to_json (BasicJsonType &j, typename BasicJsonType::string_t &&s)
 
template<typename BasicJsonType , typename Tuple , std::size_t... Idx>
void to_json_tuple_impl (BasicJsonType &j, const Tuple &t, index_sequence< Idx... >)
 
static void unescape (std::string &s)
 string unescaping as described in RFC 6901 (Sect. 4) More...
 
j template void ())
 

Detailed Description

detail namespace with internal helper functions

This namespace collects functions that should not be exposed, implementations of some basic_json methods, and meta-programming helpers.

Since
version 2.1.0

Typedef Documentation

◆ binary_function_t

template<typename T , typename Binary >
using nlohmann::detail::binary_function_t = typedef decltype(std::declval<T&>().binary(std::declval<Binary&>()))

Definition at line 8178 of file json.hpp.

◆ boolean_function_t

template<typename T >
using nlohmann::detail::boolean_function_t = typedef decltype(std::declval<T&>().boolean(std::declval<bool>()))

Definition at line 8158 of file json.hpp.

◆ contiguous_bytes_input_adapter

using nlohmann::detail::contiguous_bytes_input_adapter = typedef decltype(input_adapter(std::declval<const char*>(), std::declval<const char*>()))

Definition at line 5736 of file json.hpp.

◆ detected_or

template<class Default , template< class... > class Op, class... Args>
using nlohmann::detail::detected_or = typedef detector<Default, void, Op, Args...>

Definition at line 3328 of file json.hpp.

◆ detected_or_t

template<class Default , template< class... > class Op, class... Args>
using nlohmann::detail::detected_or_t = typedef typename detected_or<Default, Op, Args...>::type

Definition at line 3331 of file json.hpp.

◆ detected_t

template<template< class... > class Op, class... Args>
using nlohmann::detail::detected_t = typedef typename detector<nonesuch, void, Op, Args...>::type

Definition at line 3325 of file json.hpp.

◆ difference_type_t

template<typename T >
using nlohmann::detail::difference_type_t = typedef typename T::difference_type

Definition at line 3480 of file json.hpp.

◆ enable_if_t

template<bool B, typename T = void>
using nlohmann::detail::enable_if_t = typedef typename std::enable_if<B, T>::type

Definition at line 3059 of file json.hpp.

◆ end_array_function_t

template<typename T >
using nlohmann::detail::end_array_function_t = typedef decltype(std::declval<T&>().end_array())

Definition at line 8196 of file json.hpp.

◆ end_object_function_t

template<typename T >
using nlohmann::detail::end_object_function_t = typedef decltype(std::declval<T&>().end_object())

Definition at line 8189 of file json.hpp.

◆ from_json_function

template<typename T , typename... Args>
using nlohmann::detail::from_json_function = typedef decltype(T::from_json(std::declval<Args>()...))

Definition at line 3498 of file json.hpp.

◆ get_template_function

template<typename T , typename U >
using nlohmann::detail::get_template_function = typedef decltype(std::declval<T>().template get<U>())

Definition at line 3501 of file json.hpp.

◆ index_sequence

template<size_t... Ints>
using nlohmann::detail::index_sequence = typedef integer_sequence<size_t, Ints...>

Definition at line 3101 of file json.hpp.

◆ index_sequence_for

template<typename... Ts>
using nlohmann::detail::index_sequence_for = typedef make_index_sequence<sizeof...(Ts)>

Definition at line 3163 of file json.hpp.

◆ is_detected

template<template< class... > class Op, class... Args>
using nlohmann::detail::is_detected = typedef typename detector<nonesuch, void, Op, Args...>::value_t

Definition at line 3319 of file json.hpp.

◆ is_detected_convertible

template<class To , template< class... > class Op, class... Args>
using nlohmann::detail::is_detected_convertible = typedef std::is_convertible<detected_t<Op, Args...>, To>

Definition at line 3338 of file json.hpp.

◆ is_detected_exact

template<class Expected , template< class... > class Op, class... Args>
using nlohmann::detail::is_detected_exact = typedef std::is_same<Expected, detected_t<Op, Args...> >

Definition at line 3334 of file json.hpp.

◆ iterator_category_t

template<typename T >
using nlohmann::detail::iterator_category_t = typedef typename T::iterator_category

Definition at line 3489 of file json.hpp.

◆ iterator_t

template<typename T >
using nlohmann::detail::iterator_t = typedef typename T::iterator

Definition at line 3492 of file json.hpp.

◆ key_function_t

template<typename T , typename String >
using nlohmann::detail::key_function_t = typedef decltype(std::declval<T&>().key(std::declval<String&>()))

Definition at line 8186 of file json.hpp.

◆ key_type_t

template<typename T >
using nlohmann::detail::key_type_t = typedef typename T::key_type

Definition at line 3474 of file json.hpp.

◆ make_index_sequence

template<size_t N>
using nlohmann::detail::make_index_sequence = typedef make_integer_sequence<size_t, N>

Definition at line 3155 of file json.hpp.

◆ make_integer_sequence

template<typename T , T N>
using nlohmann::detail::make_integer_sequence = typedef typename utility_internal::Gen<T, N>::type

Definition at line 3147 of file json.hpp.

◆ mapped_type_t

template<typename T >
using nlohmann::detail::mapped_type_t = typedef typename T::mapped_type

Definition at line 3471 of file json.hpp.

◆ null_function_t

template<typename T >
using nlohmann::detail::null_function_t = typedef decltype(std::declval<T&>().null())

Definition at line 8154 of file json.hpp.

◆ number_float_function_t

template<typename T , typename Float , typename String >
using nlohmann::detail::number_float_function_t = typedef decltype(std::declval<T&>().number_float( std::declval<Float>(), std::declval<const String&>()))

Definition at line 8170 of file json.hpp.

◆ number_integer_function_t

template<typename T , typename Integer >
using nlohmann::detail::number_integer_function_t = typedef decltype(std::declval<T&>().number_integer(std::declval<Integer>()))

Definition at line 8162 of file json.hpp.

◆ number_unsigned_function_t

template<typename T , typename Unsigned >
using nlohmann::detail::number_unsigned_function_t = typedef decltype(std::declval<T&>().number_unsigned(std::declval<Unsigned>()))

Definition at line 8166 of file json.hpp.

◆ output_adapter_t

template<typename CharType >
using nlohmann::detail::output_adapter_t = typedef std::shared_ptr<output_adapter_protocol<CharType> >

a type to simplify interfaces

Definition at line 13461 of file json.hpp.

◆ parse_error_function_t

template<typename T , typename Exception >
using nlohmann::detail::parse_error_function_t = typedef decltype(std::declval<T&>().parse_error( std::declval<std::size_t>(), std::declval<const std::string&>(), std::declval<const Exception&>()))

Definition at line 8201 of file json.hpp.

◆ parser_callback_t

template<typename BasicJsonType >
using nlohmann::detail::parser_callback_t = typedef std::function<bool(int , parse_event_t , BasicJsonType& )>

Definition at line 10851 of file json.hpp.

◆ pointer_t

template<typename T >
using nlohmann::detail::pointer_t = typedef typename T::pointer

Definition at line 3483 of file json.hpp.

◆ reference_t

template<typename T >
using nlohmann::detail::reference_t = typedef typename T::reference

Definition at line 3486 of file json.hpp.

◆ start_array_function_t

template<typename T >
using nlohmann::detail::start_array_function_t = typedef decltype(std::declval<T&>().start_array(std::declval<std::size_t>()))

Definition at line 8193 of file json.hpp.

◆ start_object_function_t

template<typename T >
using nlohmann::detail::start_object_function_t = typedef decltype(std::declval<T&>().start_object(std::declval<std::size_t>()))

Definition at line 8182 of file json.hpp.

◆ string_function_t

template<typename T , typename String >
using nlohmann::detail::string_function_t = typedef decltype(std::declval<T&>().string(std::declval<String&>()))

Definition at line 8174 of file json.hpp.

◆ to_json_function

template<typename T , typename... Args>
using nlohmann::detail::to_json_function = typedef decltype(T::to_json(std::declval<Args>()...))

Definition at line 3495 of file json.hpp.

◆ uncvref_t

template<typename T >
using nlohmann::detail::uncvref_t = typedef typename std::remove_cv<typename std::remove_reference<T>::type>::type

Definition at line 3045 of file json.hpp.

◆ value_type_t

template<typename T >
using nlohmann::detail::value_type_t = typedef typename T::value_type

Definition at line 3477 of file json.hpp.

◆ void_t

template<typename ... Ts>
using nlohmann::detail::void_t = typedef typename make_void<Ts...>::type

Definition at line 3222 of file json.hpp.

Enumeration Type Documentation

◆ cbor_tag_handler_t

how to treat CBOR tags

Enumerator
error 

throw a parse_error exception in case of a tag

ignore 

ignore tags

store 

store tags as binary type

Definition at line 8301 of file json.hpp.

◆ error_handler_t

how to treat decoding errors

Enumerator
strict 

throw a type_error exception in case of invalid UTF-8

replace 

replace invalid UTF-8 sequences with U+FFFD

ignore 

ignore invalid UTF-8 sequences

Definition at line 16337 of file json.hpp.

◆ input_format_t

the supported input formats

Enumerator
json 
cbor 
msgpack 
ubjson 
bson 

Definition at line 5333 of file json.hpp.

◆ parse_event_t

enum nlohmann::detail::parse_event_t : std::uint8_t
strong
Enumerator
object_start 

the parser read { and started to process a JSON object

object_end 

the parser read } and finished processing a JSON object

array_start 

the parser read [ and started to process a JSON array

array_end 

the parser read ] and finished processing a JSON array

key 

the parser read a key of a value in an object

value 

the parser finished reading a JSON value

Definition at line 10833 of file json.hpp.

◆ value_t

enum nlohmann::detail::value_t : std::uint8_t
strong

the JSON type enumeration

This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions basic_json::is_null(), basic_json::is_object(), basic_json::is_array(), basic_json::is_string(), basic_json::is_boolean(), basic_json::is_number() (with basic_json::is_number_integer(), basic_json::is_number_unsigned(), and basic_json::is_number_float()), basic_json::is_discarded(), basic_json::is_primitive(), and basic_json::is_structured() rely on it.

Note
There are three enumeration entries (number_integer, number_unsigned, and number_float), because the library distinguishes these three types for numbers: basic_json::number_unsigned_t is used for unsigned integers, basic_json::number_integer_t is used for signed integers, and basic_json::number_float_t is used for floating-point numbers or to approximate integers which do not fit in the limits of their respective type.
See also
see basic_json::basic_json(const value_t value_type) – create a JSON value with the default value for a given type
Since
version 1.0.0
Enumerator
null 

null value

object 

object (unordered set of name/value pairs)

array 

array (ordered collection of values)

string 

string value

boolean 

boolean value

number_integer 

number value (signed integer)

number_unsigned 

number value (unsigned integer)

number_float 

number value (floating-point)

binary 

binary array (ordered collection of bytes)

discarded 

discarded by the parser callback function

Definition at line 120 of file json.hpp.

Function Documentation

◆ combine()

std::size_t nlohmann::detail::combine ( std::size_t  seed,
std::size_t  h 
)
inlinenoexcept

Definition at line 5179 of file json.hpp.

Referenced by hash().

+ Here is the caller graph for this function:

◆ conditional_static_cast()

template<typename T , typename U , enable_if_t< !std::is_same< T, U >::value, int > = 0>
T nlohmann::detail::conditional_static_cast ( value)

Definition at line 3850 of file json.hpp.

◆ escape()

std::string nlohmann::detail::escape ( std::string  s)
inline

string escaping as described in RFC 6901 (Sect. 4)

Parameters
[in]sstring to escape
Returns
escaped string

Note the order of escaping "~" to "~0" and "/" to "~1" is important.

Definition at line 2554 of file json.hpp.

References replace_substring().

Referenced by nlohmann::basic_json::diff(), and nlohmann::json_pointer< BasicJsonType >::flatten().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ from_json() [1/19]

template<typename BasicJsonType , typename T , std::size_t N>
auto nlohmann::detail::from_json ( BasicJsonType &&  j,
identity_tag< std::array< T, N >>  tag 
) -> decltype(from_json_inplace_array_impl(std::forward<BasicJsonType>(j), tag, make_index_sequence<N>

Definition at line 4117 of file json.hpp.

◆ from_json() [2/19]

template<typename BasicJsonType , typename TupleRelated >
auto nlohmann::detail::from_json ( BasicJsonType &&  j,
TupleRelated &&  t 
) -> decltype(from_json_tuple_impl(std::forward<BasicJsonType>(j), std::forward<TupleRelated>(t), priority_tag<3>

Definition at line 4241 of file json.hpp.

◆ from_json() [3/19]

template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::number_unsigned_t >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::number_integer_t >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::number_float_t >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::boolean_t >::value, int > = 0>
void nlohmann::detail::from_json ( const BasicJsonType &  j,
ArithmeticType &  val 
)

Definition at line 4173 of file json.hpp.

References array, binary, boolean, nlohmann::detail::type_error::create(), discarded, JSON_THROW, null, number_float, number_integer, number_unsigned, object, and string.

+ Here is the call graph for this function:

◆ from_json() [4/19]

template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< is_constructible_array_type< BasicJsonType, ConstructibleArrayType >::value &&!is_constructible_object_type< BasicJsonType, ConstructibleArrayType >::value &&!is_constructible_string_type< BasicJsonType, ConstructibleArrayType >::value &&!std::is_same< ConstructibleArrayType, typename BasicJsonType::binary_t >::value &&!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>

Definition at line 4096 of file json.hpp.

◆ from_json() [5/19]

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 
)

Definition at line 4141 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

+ Here is the call graph for this function:

◆ from_json() [6/19]

template<typename BasicJsonType , typename ConstructibleStringType , enable_if_t< is_constructible_string_type< BasicJsonType, ConstructibleStringType >::value &&!std::is_same< typename BasicJsonType::string_t, ConstructibleStringType >::value, int > = 0>
void nlohmann::detail::from_json ( const BasicJsonType &  j,
ConstructibleStringType &  s 
)

Definition at line 3945 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

+ Here is the call graph for this function:

◆ from_json() [7/19]

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 
)

Definition at line 3975 of file json.hpp.

References get_arithmetic_value(), and is_valid_types_gen::type.

+ Here is the call graph for this function:

◆ from_json() [8/19]

template<typename BasicJsonType , typename T , typename Allocator , enable_if_t< is_getable< BasicJsonType, T >::value, int > = 0>
void nlohmann::detail::from_json ( const BasicJsonType &  j,
std::forward_list< T, Allocator > &  l 
)

Definition at line 3985 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and banquet::l.

+ Here is the call graph for this function:

◆ from_json() [9/19]

template<typename BasicJsonType , typename Key , typename Value , typename Compare , typename Allocator , typename = enable_if_t < !std::is_constructible < typename BasicJsonType::string_t, Key >::value >>
void nlohmann::detail::from_json ( const BasicJsonType &  j,
std::map< Key, Value, Compare, Allocator > &  m 
)

Definition at line 4255 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and m.

+ Here is the call graph for this function:

◆ from_json() [10/19]

template<typename BasicJsonType , typename Key , typename Value , typename Hash , typename KeyEqual , typename Allocator , typename = enable_if_t < !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 
)

Definition at line 4275 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and m.

Referenced by nlohmann::adl_serializer< ValueType, typename >::from_json(), nlohmann::basic_json::get_impl(), and nlohmann::basic_json::get_to().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ from_json() [11/19]

template<typename BasicJsonType , typename T , enable_if_t< is_getable< BasicJsonType, T >::value, int > = 0>
void nlohmann::detail::from_json ( const BasicJsonType &  j,
std::valarray< T > &  l 
)

Definition at line 4002 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and banquet::l.

+ Here is the call graph for this function:

◆ from_json() [12/19]

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())

Definition at line 4017 of file json.hpp.

◆ from_json() [13/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename BasicJsonType::binary_t &  bin 
)

Definition at line 4129 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

+ Here is the call graph for this function:

◆ from_json() [14/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename BasicJsonType::boolean_t &  b 
)

Definition at line 3919 of file json.hpp.

References Ice::b, nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

+ Here is the call graph for this function:

◆ from_json() [15/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename BasicJsonType::number_float_t &  val 
)

Definition at line 3956 of file json.hpp.

References get_arithmetic_value().

+ Here is the call graph for this function:

◆ from_json() [16/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename BasicJsonType::number_integer_t &  val 
)

Definition at line 3968 of file json.hpp.

References get_arithmetic_value().

+ Here is the call graph for this function:

◆ from_json() [17/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename BasicJsonType::number_unsigned_t &  val 
)

Definition at line 3962 of file json.hpp.

References get_arithmetic_value().

+ Here is the call graph for this function:

◆ from_json() [18/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename BasicJsonType::string_t &  s 
)

Definition at line 3929 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

+ Here is the call graph for this function:

◆ from_json() [19/19]

template<typename BasicJsonType >
void nlohmann::detail::from_json ( const BasicJsonType &  j,
typename std::nullptr_t &  n 
)

Definition at line 3872 of file json.hpp.

References nlohmann::detail::type_error::create(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

Referenced by nlohmann::detail::from_json_fn::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ from_json_array_impl() [1/4]

template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< std::is_assignable< ConstructibleArrayType &, ConstructibleArrayType >::value, int > = 0>
void nlohmann::detail::from_json_array_impl ( const BasicJsonType &  j,
ConstructibleArrayType &  arr,
priority_tag< 0 >   
)

Definition at line 4071 of file json.hpp.

◆ from_json_array_impl() [2/4]

template<typename BasicJsonType , typename ConstructibleArrayType , enable_if_t< std::is_assignable< ConstructibleArrayType &, ConstructibleArrayType >::value, int > = 0>
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())

Definition at line 4047 of file json.hpp.

◆ from_json_array_impl() [3/4]

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())

Definition at line 4033 of file json.hpp.

◆ from_json_array_impl() [4/4]

template<typename BasicJsonType >
void nlohmann::detail::from_json_array_impl ( const BasicJsonType &  j,
typename BasicJsonType::array_t &  arr,
priority_tag< 3 >   
)

Definition at line 4027 of file json.hpp.

Referenced by void().

+ Here is the caller graph for this function:

◆ from_json_inplace_array_impl()

template<typename BasicJsonType , typename T , std::size_t... Idx>
std::array<T, sizeof...(Idx)> nlohmann::detail::from_json_inplace_array_impl ( BasicJsonType &&  j,
identity_tag< std::array< T, sizeof...(Idx)>>  ,
index_sequence< Idx... >   
)

Definition at line 4110 of file json.hpp.

◆ from_json_tuple_impl() [1/4]

template<typename BasicJsonType , class A1 , class A2 >
std::pair<A1, A2> nlohmann::detail::from_json_tuple_impl ( BasicJsonType &&  j,
identity_tag< std::pair< A1, A2 >>  ,
priority_tag< 0 >   
)

Definition at line 4216 of file json.hpp.

Referenced by from_json_tuple_impl().

+ Here is the caller graph for this function:

◆ from_json_tuple_impl() [2/4]

template<typename BasicJsonType , typename... Args>
std::tuple<Args...> nlohmann::detail::from_json_tuple_impl ( BasicJsonType &&  j,
identity_tag< std::tuple< Args... >>  ,
priority_tag< 2 >   
)

Definition at line 4229 of file json.hpp.

References from_json_tuple_impl_base().

+ Here is the call graph for this function:

◆ from_json_tuple_impl() [3/4]

template<typename BasicJsonType , typename A1 , typename A2 >
void nlohmann::detail::from_json_tuple_impl ( BasicJsonType &&  j,
std::pair< A1, A2 > &  p,
priority_tag< 1 >   
)

Definition at line 4223 of file json.hpp.

References from_json_tuple_impl().

+ Here is the call graph for this function:

◆ from_json_tuple_impl() [4/4]

template<typename BasicJsonType , typename... Args>
void nlohmann::detail::from_json_tuple_impl ( BasicJsonType &&  j,
std::tuple< Args... > &  t,
priority_tag< 3 >   
)

Definition at line 4235 of file json.hpp.

References from_json_tuple_impl_base(), and Floor::t.

+ Here is the call graph for this function:

◆ from_json_tuple_impl_base()

template<typename BasicJsonType , typename... Args, std::size_t... Idx>
std::tuple<Args...> nlohmann::detail::from_json_tuple_impl_base ( BasicJsonType &&  j,
index_sequence< Idx... >   
)

Definition at line 4210 of file json.hpp.

Referenced by from_json_tuple_impl().

+ Here is the caller graph for this function:

◆ get()

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())

Definition at line 4475 of file json.hpp.

Referenced by inja::Renderer::visit().

+ Here is the caller graph for this function:

◆ get< typename ConstructibleArrayType::value_type >()

j template nlohmann::detail::get< typename ConstructibleArrayType::value_type > ( )

◆ get_arithmetic_value()

template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value &&!std::is_same< ArithmeticType, typename BasicJsonType::boolean_t >::value, int > = 0>
void nlohmann::detail::get_arithmetic_value ( const BasicJsonType &  j,
ArithmeticType &  val 
)

Definition at line 3886 of file json.hpp.

References array, binary, boolean, nlohmann::detail::type_error::create(), discarded, JSON_THROW, null, number_float, number_integer, number_unsigned, object, and string.

Referenced by from_json().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hash()

template<typename BasicJsonType >
std::size_t nlohmann::detail::hash ( const BasicJsonType &  j)

hash a JSON value

The hash function tries to rely on std::hash where possible. Furthermore, the type of the JSON value is taken into account to have different hash values for null, 0, 0U, and false, etc.

Template Parameters
BasicJsonTypebasic_json specialization
Parameters
jJSON value to hash
Returns
hash value of j

Definition at line 5197 of file json.hpp.

References combine(), board::element, JSON_ASSERT, and is_valid_types_gen::type.

Referenced by hashstr(), and std::hash< nlohmann::json >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ input_adapter() [1/7]

template<typename CharT , typename std::enable_if< std::is_pointer< CharT >::value &&!std::is_array< CharT >::value &&std::is_integral< typename std::remove_pointer< CharT >::type >::value &&sizeof(typename std::remove_pointer< CharT >::type)==1, int >::type = 0>
contiguous_bytes_input_adapter nlohmann::detail::input_adapter ( CharT  b)

Definition at line 5746 of file json.hpp.

References Ice::b, and input_adapter().

+ Here is the call graph for this function:

◆ input_adapter() [2/7]

template<typename ContainerType >
container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type nlohmann::detail::input_adapter ( const ContainerType &  container)

Definition at line 5713 of file json.hpp.

◆ input_adapter() [3/7]

◆ input_adapter() [4/7]

file_input_adapter nlohmann::detail::input_adapter ( std::FILE *  file)
inline

Definition at line 5720 of file json.hpp.

References mad_mage_user::file.

◆ input_adapter() [5/7]

input_stream_adapter nlohmann::detail::input_adapter ( std::istream &&  stream)
inline

Definition at line 5730 of file json.hpp.

◆ input_adapter() [6/7]

input_stream_adapter nlohmann::detail::input_adapter ( std::istream &  stream)
inline

Definition at line 5725 of file json.hpp.

◆ input_adapter() [7/7]

template<typename T , std::size_t N>
auto nlohmann::detail::input_adapter ( T(&)  array[N]) -> decltype(input_adapter(array, array + N))

Definition at line 5754 of file json.hpp.

References array, and input_adapter().

+ Here is the call graph for this function:

◆ int_to_string()

template<typename string_type >
void nlohmann::detail::int_to_string ( string_type &  target,
std::size_t  value 
)

Definition at line 4344 of file json.hpp.

References nlohmann::to_string().

Referenced by nlohmann::detail::iteration_proxy_value< IteratorType >::key().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ little_endianess()

static bool nlohmann::detail::little_endianess ( int  num = 1)
inlinestaticnoexcept

determine system byte order

Returns
true if and only if system's byte order is little endian
Note
from https://stackoverflow.com/a/1001328/266378

Definition at line 8315 of file json.hpp.

◆ operator<()

bool nlohmann::detail::operator< ( const value_t  lhs,
const value_t  rhs 
)
inlinenoexcept

comparison operator for JSON types

Returns an ordering that is similar to Python:

  • order: null < boolean < number < object < array < string < binary
  • furthermore, each type is not smaller than itself
  • discarded values are not comparable
  • binary is represented as a b"" string in python and directly comparable to a string; however, making a binary array directly comparable with a string would be surprising behavior in a JSON file.
Since
version 1.0.0

Definition at line 147 of file json.hpp.

Referenced by nssv_DISABLE_MSVC_WARNINGS(), and std::less<::nlohmann::detail::value_t >::operator()().

+ Here is the caller graph for this function:

◆ replace_substring()

void nlohmann::detail::replace_substring ( std::string &  s,
const std::string &  f,
const std::string &  t 
)
inline

replace all occurrences of a substring by another string

Parameters
[in,out]sthe string to manipulate; changed so that all occurrences of f are replaced with t
[in]fthe substring to replace with t
[in]tthe string to replace f
Precondition
The search string f must not be empty. This precondition is enforced with an assertion.
Since
version 2.0.0

Definition at line 2536 of file json.hpp.

References JSON_ASSERT, and Floor::t.

Referenced by escape(), and unescape().

+ Here is the caller graph for this function:

◆ to_chars()

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).

The format of the resulting decimal representation is similar to printf's g format. Returns an iterator pointing past-the-end of the decimal representation.

Note
The input number must be finite, i.e. NaN's and Inf's are not supported.
The buffer must be large enough.
The result is NOT null-terminated.

Definition at line 16260 of file json.hpp.

References nlohmann::detail::dtoa_impl::format_buffer(), nlohmann::detail::dtoa_impl::grisu2(), and JSON_ASSERT.

+ Here is the call graph for this function:

◆ to_json() [1/17]

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

Definition at line 4797 of file json.hpp.

◆ to_json() [2/17]

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

Definition at line 4790 of file json.hpp.

◆ to_json() [3/17]

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 nlohmann::detail::to_json ( BasicJsonType &  j,
const CompatibleArrayType &  arr 
)

Definition at line 4824 of file json.hpp.

◆ to_json() [4/17]

template<typename BasicJsonType , typename CompatibleObjectType , enable_if_t< is_compatible_object_type< BasicJsonType, CompatibleObjectType >::value &&!is_basic_json< CompatibleObjectType >::value, int > = 0>
void nlohmann::detail::to_json ( BasicJsonType &  j,
const CompatibleObjectType &  obj 
)

Definition at line 4850 of file json.hpp.

◆ to_json() [5/17]

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 
)

Definition at line 4770 of file json.hpp.

◆ to_json() [6/17]

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 
)

Definition at line 4872 of file json.hpp.

◆ to_json() [7/17]

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 
)

Definition at line 4837 of file json.hpp.

◆ to_json() [8/17]

template<typename BasicJsonType >
void nlohmann::detail::to_json ( BasicJsonType &  j,
const std::vector< bool > &  e 
)

Definition at line 4811 of file json.hpp.

◆ to_json() [9/17]

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 
)

Definition at line 4880 of file json.hpp.

References Ice::b.

Referenced by nlohmann::basic_json::basic_json(), and nlohmann::adl_serializer< ValueType, typename >::to_json().

+ Here is the caller graph for this function:

◆ to_json() [10/17]

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 nlohmann::detail::to_json ( BasicJsonType &  j,
const T(&)  arr[N] 
)

Definition at line 4866 of file json.hpp.

◆ to_json() [11/17]

template<typename BasicJsonType >
void nlohmann::detail::to_json ( BasicJsonType &  j,
const typename BasicJsonType::binary_t &  bin 
)

Definition at line 4830 of file json.hpp.

◆ to_json() [12/17]

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

Definition at line 4804 of file json.hpp.

References is_valid_types_gen::type.

◆ to_json() [13/17]

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

Definition at line 4783 of file json.hpp.

◆ to_json() [14/17]

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,
b 
)
noexcept

Definition at line 4763 of file json.hpp.

References Ice::b.

Referenced by nlohmann::detail::to_json_fn::operator()().

+ Here is the caller graph for this function:

◆ to_json() [15/17]

template<typename BasicJsonType >
void nlohmann::detail::to_json ( BasicJsonType &  j,
typename BasicJsonType::array_t &&  arr 
)

Definition at line 4843 of file json.hpp.

◆ to_json() [16/17]

template<typename BasicJsonType >
void nlohmann::detail::to_json ( BasicJsonType &  j,
typename BasicJsonType::object_t &&  obj 
)

Definition at line 4856 of file json.hpp.

◆ to_json() [17/17]

template<typename BasicJsonType >
void nlohmann::detail::to_json ( BasicJsonType &  j,
typename BasicJsonType::string_t &&  s 
)

Definition at line 4776 of file json.hpp.

◆ to_json_tuple_impl()

template<typename BasicJsonType , typename Tuple , std::size_t... Idx>
void nlohmann::detail::to_json_tuple_impl ( BasicJsonType &  j,
const Tuple &  t,
index_sequence< Idx... >   
)

Definition at line 4886 of file json.hpp.

References Floor::t.

◆ unescape()

static void nlohmann::detail::unescape ( std::string &  s)
static

string unescaping as described in RFC 6901 (Sect. 4)

Parameters
[in]sstring to unescape
Returns
unescaped string

Note the order of escaping "~1" to "/" and "~0" to "~" is important.

Definition at line 2568 of file json.hpp.

References replace_substring().

Referenced by nlohmann::json_pointer< BasicJsonType >::split().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ void()

j template nlohmann::detail::void ( )

Definition at line 4099 of file json.hpp.

References nlohmann::detail::type_error::create(), from_json_array_impl(), JSON_HEDLEY_UNLIKELY, and JSON_THROW.

Referenced by add_me_cmd(), addReply(), alchemy_failure_effect(), apply_auto_fix(), apply_special(), armour_improver_type_apply(), AssetsTracker::assetDefined(), attempt_jump(), become_follower(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_reader(), book_type_apply(), AssetModel::canDropMimeData(), cast_light(), cast_word_of_recall(), cf_handle_type_apply(), cfanim_runPluginCommand(), check_hp(), checkdm(), clean_tmp_map(), clear_los(), clock_type_apply(), AssetCollector::collect(), ArchetypesModel::columnCount(), command_afk(), command_body(), command_cointoss(), command_delete(), command_dumpabove(), command_dumpallarchetypes(), command_dumpallmaps(), command_dumpallobjects(), command_dumpbelow(), command_dumpfriendlyobjects(), command_dumpmap(), command_fire_stop(), command_fix_me(), command_hide(), command_invisible(), command_kick2(), command_listplugins(), command_malloc(), command_mapinfo(), command_mon_aggr(), command_motd(), command_news(), command_nowiz(), command_overlay_reset(), command_overlay_save(), command_passwd(), command_peaceful(), command_players(), command_printlos(), command_purge_quest(), command_purge_quest_definitions(), command_quit(), command_recollect(), command_resistances(), command_rules(), command_run_stop(), command_save(), command_settings(), command_sound(), command_ssdumptable(), command_stack_clear(), command_stack_list(), command_stack_pop(), command_statistics(), command_strings(), command_style_map_info(), command_time(), command_version(), command_whereabouts(), command_whereami(), common_post_ob_move_on(), confuse_living(), container_type_move_on(), costStringFromValue(), createCFObject(), createCFObjectByName(), createMap(), creator_type_trigger(), Crossfire_Archetype_GetClone(), Crossfire_Archetype_GetHead(), Crossfire_Archetype_GetMore(), Crossfire_Archetype_GetName(), Crossfire_Archetype_GetNewObject(), Crossfire_Archetype_GetNext(), Crossfire_Map_new(), Crossfire_Object_Arrest(), Crossfire_Object_Fix(), Crossfire_Object_new(), Crossfire_Object_PermExp(), Crossfire_Object_QueryName(), Crossfire_Object_Remove(), Crossfire_Party_GetName(), Crossfire_Party_GetNext(), Crossfire_Party_GetPassword(), Crossfire_Party_GetPlayers(), Crossfire_Player_CanPay(), Crossfire_Player_new(), Crossfire_Region_GetJailPath(), Crossfire_Region_GetJailX(), Crossfire_Region_GetJailY(), Crossfire_Region_GetLongname(), Crossfire_Region_GetMessage(), Crossfire_Region_GetName(), Crossfire_Region_GetNext(), Crossfire_Region_GetParent(), destroyTimer(), do_skill(), dragon_ability_gain(), dragon_focus_type_apply(), draw_ext_info(), draw_ext_info_format(), AssetModel::dropMimeData(), duplicator_type_trigger(), emergency_save(), esrv_del_item(), esrv_send_item(), esrv_update_item(), esrv_update_spells(), exit_type_apply(), ext_info_map(), find_skill_by_number(), findAnimation(), findFace(), findPlayer(), fire(), food_type_apply(), get_rangevector_from_mapcoord(), getArchetypes(), getCFPythonVersion(), getConfigDirectory(), getDataDirectory(), getEvent(), getFriendlyList(), getLocalDirectory(), getMapDirectory(), getMapHasBeenLoaded(), getMaps(), getMonthName(), getParties(), getPeriodofdayName(), getPlayerDirectory(), getPlayers(), getPrivateDictionary(), getRegions(), getReturnValue(), getScriptName(), getScriptParameters(), getSeasonName(), getSharedDictionary(), getTempDirectory(), getTime(), getUniqueDirectory(), getWeekdayName(), getWhatIsMessage(), getWhoAmI(), getWhoIsActivator(), getWhoIsThird(), AssetModel::headerData(), init_hash_table(), init_ptr_assoc_table(), initapply(), initapplyobject(), initcamera(), initdropobject(), initfire(), initghosted(), initmessage(), initmovement(), initmoveto(), initnotice(), initpickup(), initpickupobject(), initPlugin(), initsay(), initstop(), initteleport(), inittrigger(), initturn(), initvisible(), initwizard(), JSON_decode(), JSON_encode(), lamp_type_describe(), legacy_ob_apply(), lighter_type_apply(), load_dir(), load_materials(), log_message(), make_snake_layout(), make_square_spiral_layout(), map_gen_spiral(), Map_GetDarkness(), Map_GetDifficulty(), Map_GetEnterX(), Map_GetEnterY(), Map_GetHeight(), Map_GetMessage(), Map_GetName(), Map_GetPath(), Map_GetPlayers(), Map_GetRegion(), Map_GetResetTime(), Map_GetResetTimeout(), Map_GetTempName(), Map_GetUnique(), Map_GetWidth(), Map_Next(), Map_SetPath(), marker_type_trigger(), matcher_all(), matcher_pickup_type(), matchString(), maze_gen(), metaserver2_thread(), metaserver2_writer(), mimic_type_apply(), monster_check_pickup(), monster_circ1_move(), monster_circ2_move(), monster_pace2_moveh(), monster_pace2_movev(), monster_pace_moveh(), monster_pace_movev(), mood_floor_type_trigger(), move_firewall(), move_player_attack(), npcSay(), nssv_DISABLE_MSVC_WARNINGS(), object_copy(), object_create_clone(), Object_GetArchetype(), Object_GetExists(), Object_GetExp(), Object_GetExpMul(), Object_GetFlagProperty(), Object_GetFloatProperty(), Object_GetIntProperty(), Object_GetMap(), Object_GetMaterial(), Object_GetMoney(), Object_GetMoveAllow(), Object_GetMoveBlock(), Object_GetMoveOff(), Object_GetMoveOn(), Object_GetMoveSlow(), Object_GetMoveType(), Object_GetName(), Object_GetNamePl(), Object_GetObjectProperty(), Object_GetOtherArchetype(), Object_GetPickable(), Object_GetSStringProperty(), Object_GetTotalExp(), Object_GetValue(), Object_SetAnim(), Object_SetEnemy(), Object_SetExp(), Object_SetFace(), Object_SetMap(), Object_SetMoveAllow(), Object_SetMoveBlock(), Object_SetMoveOff(), Object_SetMoveOn(), Object_SetMoveSlow(), Object_SetMoveType(), Object_SetName(), Object_SetNamePl(), Object_SetOwner(), Object_SetPickable(), Object_SetQuantity(), Object_SetValue(), pets_move(), Player_GetBedMap(), Player_GetBedX(), Player_GetBedY(), Player_GetIP(), Player_GetMarkedItem(), Player_GetParty(), Player_GetTitle(), Player_SetBedMap(), Player_SetBedX(), Player_SetBedY(), Player_SetMarkedItem(), Player_SetParty(), Player_SetTitle(), poison_type_apply(), poisoning_type_process(), potion_type_apply(), power_crystal_describe(), power_crystal_type_apply(), put_in_icecube(), LicenseManager::readLicense(), readyMap(), rec_sighup(), recursive_roll(), registerCommand(), registerGEvent(), rod_adjust(), roguelike_layout_gen(), ArchetypesModel::rowCount(), runapply(), runapplyobject(), runcamera(), rundropobject(), runfire(), runmessage(), runmovement(), runmoveto(), runnotice(), runpickup(), runpickupobject(), runsay(), runstop(), runteleport(), runtrigger(), runturn(), runvisible(), runwizard(), savebed_type_apply(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), scroll_type_apply(), set_darkness_map(), set_map_timeout(), ArtifactListPanel::setItem(), setPlayerMessage(), setReturnValue(), shop_inventory_type_apply(), sign_type_apply(), signal_shutdown(), skillscroll_type_apply(), slow_living(), SockList_ReadPacket(), SockList_Term(), spellbook_type_apply(), teleporter_type_trigger(), thrown_item_effect(), treasure_type_apply(), trigger_type_apply(), unapply_special(), unregisterGEvent(), version_cmd(), and weapon_improver_type_apply().

+ Here is the call graph for this function: