Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
nlohmann::detail Namespace Reference

detail namespace with internal helper functions More...

Namespaces

namespace  container_input_adapter_factory_impl
namespace  dtoa_impl
 implements the Grisu2 algorithm for binary to decimal floating-point conversion.
namespace  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< 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  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_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_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  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_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_ordered_map
struct  is_range
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
class  output_stream_adapter
class  output_string_adapter
class  output_vector_adapter
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
template<typename T>
using boolean_function_t
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
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 R>
using iterator_t = enable_if_t<is_range<R>::value, result_of_begin<decltype(std::declval<R&>())>>
template<typename T, typename String>
using key_function_t
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
template<typename T, typename Integer>
using number_integer_function_t
template<typename T, typename Unsigned>
using number_unsigned_function_t
template<typename CharType>
using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>
template<typename T, typename Exception>
using parse_error_function_t
template<typename BasicJsonType>
using parser_callback_t
template<typename T>
using pointer_t = typename T::pointer
template<typename T>
using range_value_t = value_type_t<iterator_traits<iterator_t<T>>>
template<typename T>
using reference_t = typename T::reference
template<typename T>
using start_array_function_t
template<typename T>
using start_object_function_t
template<typename T, typename String>
using string_function_t
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 class  cbor_tag_handler_t { error , ignore , store }
 how to treat CBOR tags More...
enum class  error_handler_t { strict , replace , ignore }
enum class  input_format_t {
  json , cbor , msgpack , ubjson ,
  bson
}
 the supported input formats More...
enum class  parse_event_t : std::uint8_t { read , array_end , key , value }
enum class  value_t : std::uint8_t {
  null , object , array , string ,
  boolean , number_integer , number_unsigned , number_float ,
  binary , 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)
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)
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 > {}), j.template get< typename ConstructibleArrayType::value_type >(), void())
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())
template<std::size_t N, typename IteratorType, enable_if_t< N==1, int > = 0>
auto get (const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.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 get_arithmetic_value (const BasicJsonType &j, ArithmeticType &val)
template<typename BasicJsonType>
std::size_t hash (const BasicJsonType &j)
 hash a JSON value
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_endianness (int num=1) noexcept
 determine system byte order
bool operator< (const value_t lhs, const value_t rhs) noexcept
 comparison operator for JSON types
void replace_substring (std::string &s, const std::string &f, const std::string &t)
 replace all occurrences of a substring by another string
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).
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, enable_if_t< is_constructible_tuple< BasicJsonType, T >::value, int > = 0>
void to_json (BasicJsonType &j, const T &t)
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)

Variables

template<typename T>
constexpr T static_const< T >::value

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
Initial value:
decltype(std::declval<T&>().binary(std::declval<Binary&>()))

Definition at line 8077 of file json.hpp.

◆ boolean_function_t

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

Definition at line 8057 of file json.hpp.

◆ contiguous_bytes_input_adapter

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

Definition at line 5636 of file json.hpp.

◆ detected_or

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

Definition at line 2289 of file json.hpp.

◆ detected_or_t

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

Definition at line 2292 of file json.hpp.

◆ detected_t

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

Definition at line 2286 of file json.hpp.

◆ difference_type_t

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

Definition at line 3410 of file json.hpp.

◆ enable_if_t

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

Definition at line 3055 of file json.hpp.

◆ end_array_function_t

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

Definition at line 8096 of file json.hpp.

◆ end_object_function_t

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

Definition at line 8089 of file json.hpp.

◆ from_json_function

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

Definition at line 3425 of file json.hpp.

◆ get_template_function

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

Definition at line 3428 of file json.hpp.

◆ index_sequence

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

Definition at line 3097 of file json.hpp.

◆ index_sequence_for

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

Definition at line 3159 of file json.hpp.

◆ is_detected

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

Definition at line 2280 of file json.hpp.

◆ is_detected_convertible

template<class To, template< class... > class Op, class... Args>
using nlohmann::detail::is_detected_convertible
Initial value:
std::is_convertible<detected_t<Op, Args...>, To>
typename detector< nonesuch, void, Op, Args... >::type detected_t
Definition json.hpp:2286

Definition at line 2298 of file json.hpp.

◆ is_detected_exact

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

Definition at line 2295 of file json.hpp.

◆ iterator_category_t

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

Definition at line 3419 of file json.hpp.

◆ iterator_t

template<typename R>
using nlohmann::detail::iterator_t = enable_if_t<is_range<R>::value, result_of_begin<decltype(std::declval<R&>())>>

Definition at line 3576 of file json.hpp.

◆ key_function_t

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

Definition at line 8085 of file json.hpp.

◆ key_type_t

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

Definition at line 3404 of file json.hpp.

◆ make_index_sequence

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

Definition at line 3151 of file json.hpp.

◆ make_integer_sequence

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

Definition at line 3143 of file json.hpp.

◆ mapped_type_t

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

Definition at line 3401 of file json.hpp.

◆ null_function_t

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

Definition at line 8054 of file json.hpp.

◆ number_float_function_t

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

Definition at line 8069 of file json.hpp.

◆ number_integer_function_t

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

Definition at line 8061 of file json.hpp.

◆ number_unsigned_function_t

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

Definition at line 8065 of file json.hpp.

◆ output_adapter_t

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

Definition at line 13198 of file json.hpp.

◆ parse_error_function_t

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

Definition at line 8099 of file json.hpp.

◆ parser_callback_t

Initial value:
std::function<bool(int , parse_event_t , BasicJsonType& )>
*brief remove last reference token *sa JSON pointer has no BasicJsonType()))

Definition at line 10750 of file json.hpp.

◆ pointer_t

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

Definition at line 3413 of file json.hpp.

◆ range_value_t

Definition at line 3579 of file json.hpp.

◆ reference_t

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

Definition at line 3416 of file json.hpp.

◆ start_array_function_t

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

Definition at line 8092 of file json.hpp.

◆ start_object_function_t

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

Definition at line 8081 of file json.hpp.

◆ string_function_t

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

Definition at line 8073 of file json.hpp.

◆ to_json_function

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

Definition at line 3422 of file json.hpp.

◆ uncvref_t

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

Definition at line 3041 of file json.hpp.

◆ value_type_t

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

Definition at line 3407 of file json.hpp.

◆ void_t

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

Definition at line 2242 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 8201 of file json.hpp.

◆ error_handler_t

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 16077 of file json.hpp.

◆ input_format_t

the supported input formats

Enumerator
json 
cbor 
msgpack 
ubjson 
bson 

Definition at line 5233 of file json.hpp.

◆ parse_event_t

enum class nlohmann::detail::parse_event_t : std::uint8_t
strong
Enumerator
read 
array_end 
key 
value 

Definition at line 10733 of file json.hpp.

◆ value_t

enum class 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 129 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 5079 of file json.hpp.

Referenced by hash().

Here is the caller graph for this function:

◆ conditional_static_cast() [1/2]

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

Definition at line 3804 of file json.hpp.

References static_const< T >::value.

◆ conditional_static_cast() [2/2]

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

Definition at line 3798 of file json.hpp.

References static_const< T >::value.

Referenced by nlohmann::detail::binary_reader< basic_json, InputType >::parse_cbor_internal().

Here is the caller graph for this function:

◆ 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 2743 of file json.hpp.

References replace_substring().

Referenced by nlohmann::flatten().

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 4079 of file json.hpp.

References nlohmann::BasicJsonType().

◆ 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 4203 of file json.hpp.

References nlohmann::BasicJsonType().

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

◆ 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 >{}), j.templateget< typenameConstructibleArrayType::value_type >(), void())

Definition at line 4058 of file json.hpp.

References nlohmann::BasicJsonType().

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

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

◆ 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 3937 of file json.hpp.

References nlohmann::BasicJsonType(), and get_arithmetic_value().

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

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

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

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

◆ 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.templateget< T >(), void())

Definition at line 3979 of file json.hpp.

References nlohmann::BasicJsonType(), and get().

◆ from_json() [13/19]

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

◆ from_json() [14/19]

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

◆ from_json() [15/19]

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

Definition at line 3918 of file json.hpp.

References nlohmann::BasicJsonType(), and get_arithmetic_value().

◆ from_json() [16/19]

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

Definition at line 3930 of file json.hpp.

References nlohmann::BasicJsonType(), and get_arithmetic_value().

◆ from_json() [17/19]

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

Definition at line 3924 of file json.hpp.

References nlohmann::BasicJsonType(), and get_arithmetic_value().

◆ from_json() [18/19]

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

◆ from_json() [19/19]

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

Definition at line 3834 of file json.hpp.

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

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

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 4033 of file json.hpp.

References nlohmann::BasicJsonType(), nlohmann::end(), and get().

◆ 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< typenameConstructibleArrayType::size_type >()), j.templateget< typenameConstructibleArrayType::value_type >(), void())

Definition at line 4009 of file json.hpp.

References nlohmann::BasicJsonType(), nlohmann::end(), and get().

◆ 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.templateget< T >(), void())

Definition at line 3995 of file json.hpp.

References nlohmann::BasicJsonType(), and get().

◆ 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 3989 of file json.hpp.

References nlohmann::BasicJsonType().

◆ 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 4072 of file json.hpp.

References nlohmann::BasicJsonType(), and get().

◆ 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 4178 of file json.hpp.

References nlohmann::BasicJsonType(), and get().

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 4191 of file json.hpp.

References nlohmann::BasicJsonType(), and from_json_tuple_impl_base().

◆ 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 4185 of file json.hpp.

References nlohmann::BasicJsonType(), and from_json_tuple_impl().

◆ 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 4197 of file json.hpp.

References nlohmann::BasicJsonType(), and from_json_tuple_impl_base().

◆ 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 4172 of file json.hpp.

References nlohmann::at(), nlohmann::BasicJsonType(), and get().

Referenced by from_json_tuple_impl(), and from_json_tuple_impl().

Here is the caller graph for this function:

◆ get() [1/2]

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 4451 of file json.hpp.

Referenced by from_json(), from_json(), from_json(), from_json_array_impl(), from_json_array_impl(), from_json_array_impl(), from_json_inplace_array_impl(), from_json_tuple_impl(), from_json_tuple_impl_base(), and hash().

Here is the caller graph for this function:

◆ get() [2/2]

template<std::size_t N, typename IteratorType, enable_if_t< N==1, int > = 0>
auto nlohmann::detail::get ( const nlohmann::detail::iteration_proxy_value< IteratorType > & i) ->decltype(i.value())

Definition at line 4459 of file json.hpp.

◆ 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 3848 of file json.hpp.

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

Referenced by from_json(), from_json(), from_json(), and from_json().

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 5097 of file json.hpp.

References nlohmann::BasicJsonType(), combine(), get(), hash(), and JSON_ASSERT.

Referenced by hash().

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 5646 of file json.hpp.

References nlohmann::b, and input_adapter().

◆ 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 5613 of file json.hpp.

◆ input_adapter() [3/7]

template<typename IteratorType>
iterator_input_adapter_factory< IteratorType >::adapter_type nlohmann::detail::input_adapter ( IteratorType first,
IteratorType last )

◆ input_adapter() [4/7]

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

Definition at line 5620 of file json.hpp.

◆ input_adapter() [5/7]

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

Definition at line 5630 of file json.hpp.

◆ input_adapter() [6/7]

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

Definition at line 5625 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 5654 of file json.hpp.

References array, and input_adapter().

◆ int_to_string()

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

Definition at line 4320 of file json.hpp.

References static_const< T >::value.

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

Here is the caller graph for this function:

◆ little_endianness()

bool nlohmann::detail::little_endianness ( 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 8215 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 156 of file json.hpp.

References nlohmann::rhs.

Referenced by 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 2725 of file json.hpp.

References JSON_ASSERT.

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 16000 of file json.hpp.

References nlohmann::detail::dtoa_impl::format_buffer(), nlohmann::detail::dtoa_impl::grisu2(), JSON_ASSERT, static_const< T >::value, and to_chars().

Referenced by to_chars().

Here is the caller graph for this function:

◆ to_json() [1/18]

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 4787 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [2/18]

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 4780 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [3/18]

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 4814 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [4/18]

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 4840 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [5/18]

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 4760 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [6/18]

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 4862 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [7/18]

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 4827 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [8/18]

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

Definition at line 4801 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [9/18]

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 4870 of file json.hpp.

References nlohmann::b, and nlohmann::BasicJsonType().

◆ to_json() [10/18]

template<typename BasicJsonType, typename T, enable_if_t< is_constructible_tuple< BasicJsonType, T >::value, int > = 0>
void nlohmann::detail::to_json ( BasicJsonType & j,
const T & t )

Definition at line 4882 of file json.hpp.

References nlohmann::BasicJsonType(), and to_json_tuple_impl().

◆ to_json() [11/18]

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 4856 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [12/18]

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

Definition at line 4820 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [13/18]

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 4794 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [14/18]

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 4773 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [15/18]

template<typename BasicJsonType, typename T, enable_if_t< std::is_same< T, typename BasicJsonType::boolean_t >::value, int > = 0>
void nlohmann::detail::to_json ( BasicJsonType & j,
T b )
noexcept

Definition at line 4753 of file json.hpp.

References nlohmann::b, and nlohmann::BasicJsonType().

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

Here is the caller graph for this function:

◆ to_json() [16/18]

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

Definition at line 4833 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [17/18]

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

Definition at line 4846 of file json.hpp.

References nlohmann::BasicJsonType().

◆ to_json() [18/18]

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

Definition at line 4766 of file json.hpp.

References nlohmann::BasicJsonType().

◆ 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 4876 of file json.hpp.

References nlohmann::BasicJsonType().

Referenced by to_json().

Here is the caller graph for this function:

◆ unescape()

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 2757 of file json.hpp.

References replace_substring().

Referenced by nlohmann::split().

Here is the caller graph for this function:

Variable Documentation

◆ static_const< T >::value

template<typename T>
T nlohmann::detail::static_const< T >::value
constexpr

Definition at line 3177 of file json.hpp.

Referenced by nlohmann::detail::binary_writer< basic_json, CharType >::calc_bson_array_size(), nlohmann::detail::binary_writer< basic_json, CharType >::calc_bson_binary_size(), nlohmann::detail::binary_writer< basic_json, CharType >::calc_bson_integer_size(), nlohmann::detail::binary_writer< basic_json, CharType >::calc_bson_object_size(), nlohmann::detail::binary_writer< basic_json, CharType >::calc_bson_string_size(), nlohmann::detail::binary_writer< basic_json, CharType >::calc_bson_unsigned_size(), nlohmann::detail::dtoa_impl::compute_boundaries(), conditional_static_cast(), nlohmann::detail::dtoa_impl::grisu2(), nlohmann::detail::json_sax_dom_callback_parser< BasicJsonType >::handle_value(), int_to_string(), nlohmann::detail::json_ref< BasicJsonType >::json_ref(), nlohmann::detail::json_ref< BasicJsonType >::json_ref(), nlohmann::detail::binary_reader< basic_json, InputType >::parse_bson_element_internal(), to_chars(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_array(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_binary(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_boolean(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_double(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_integer(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_object(), nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_object_entry(), and nlohmann::detail::binary_writer< basic_json, CharType >::write_bson_string().