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

## Classes

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

## Enumerations

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...
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 | cbor_tag_handler_t { cbor_tag_handler_t::error, cbor_tag_handler_t::ignore }
| how to treat CBOR tags More...
enum | parse_event_t : 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 | error_handler_t { error_handler_t::strict, error_handler_t::replace, error_handler_t::ignore }
| how to treat decoding errors More...

## Functions

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...
std::string | escape (std::string s)
| string escaping as described in RFC 6901 (Sect. 4) More...
static void | unescape (std::string &s)
| string unescaping as described in RFC 6901 (Sect. 4) More...
template<typename BasicJsonType >
void | from_json (const BasicJsonType &j, typename std::nullptr_t &n)
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 >
void | from_json (const BasicJsonType &j, typename BasicJsonType::boolean_t &b)
template<typename BasicJsonType >
void | from_json (const BasicJsonType &j, typename BasicJsonType::string_t &s)
template<typename BasicJsonType , typename ConstructibleStringType , enable_if_t< is_constructible_string_type< BasicJsonType, ConstructibleStringType >::value &&!std::is_same< typename BasicJsonType::string_t, ConstructibleStringType >::value, int > = 0>
void | from_json (const BasicJsonType &j, ConstructibleStringType &s)
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_unsigned_t &val)
template<typename BasicJsonType >
void | from_json (const BasicJsonType &j, typename BasicJsonType::number_integer_t &val)
template<typename BasicJsonType , typename EnumType , enable_if_t< std::is_enum< EnumType >::value, int > = 0>
void | 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 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_array_impl (const BasicJsonType &j, typename BasicJsonType::array_t &arr, priority_tag< 3 >)
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 , 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 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< 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 > ()
j template | void ())
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 , 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 >
void | from_json (const BasicJsonType &j, typename BasicJsonType::binary_t &bin)
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 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... Args, std::size_t... Idx>
std::tuple< Args... > | from_json_tuple_impl_base (BasicJsonType &&j, 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 A1 , typename A2 >
void | from_json_tuple_impl (BasicJsonType &&j, std::pair< A1, A2 > &p, priority_tag< 1 >)
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... Args>
void | from_json_tuple_impl (BasicJsonType &&j, std::tuple< Args... > &t, priority_tag< 3 >)
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 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 string_type >
void | int_to_string (string_type &target, std::size_t value)
template<std::size_t N, typename IteratorType , enable_if_t< N==0, int > = 0>
auto | get (const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.key())
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< T, typename BasicJsonType::boolean_t >::value, int > = 0>
void | to_json (BasicJsonType &j, T b) noexcept
template<typename BasicJsonType , typename CompatibleString , enable_if_t< std::is_constructible< typename BasicJsonType::string_t, CompatibleString >::value, int > = 0>
void | to_json (BasicJsonType &j, const CompatibleString &s)
template<typename BasicJsonType >
void | to_json (BasicJsonType &j, typename BasicJsonType::string_t &&s)
template<typename BasicJsonType , typename FloatType , enable_if_t< std::is_floating_point< FloatType >::value, int > = 0>
void | to_json (BasicJsonType &j, FloatType val) noexcept
template<typename BasicJsonType , typename CompatibleNumberUnsignedType , enable_if_t< is_compatible_integer_type< typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType >::value, int > = 0>
void | to_json (BasicJsonType &j, CompatibleNumberUnsignedType val) noexcept
template<typename BasicJsonType , typename CompatibleNumberIntegerType , enable_if_t< is_compatible_integer_type< typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType >::value, int > = 0>
void | to_json (BasicJsonType &j, CompatibleNumberIntegerType val) noexcept
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 >
void | to_json (BasicJsonType &j, const std::vector< bool > &e)

template<typename BasicJsonType , typename CompatibleArrayType , enable_if_t< is_compatible_array_type< BasicJsonType, CompatibleArrayType >::value &&!is_compatible_object_type< BasicJsonType, CompatibleArrayType >::value &&!is_compatible_string_type< BasicJsonType, CompatibleArrayType >::value &&!std::is_same< typename BasicJsonType::binary_t, CompatibleArrayType >::value &&!is_basic_json< CompatibleArrayType >::value, int > = 0>

void | to_json (BasicJsonType &j, const CompatibleArrayType &arr)
template<typename BasicJsonType >
void | to_json (BasicJsonType &j, const typename BasicJsonType::binary_t &bin)
template<typename BasicJsonType , typename T , enable_if_t< std::is_convertible< T, BasicJsonType >::value, int > = 0>
void | to_json (BasicJsonType &j, const std::valarray< T > &arr)
template<typename BasicJsonType >
void | to_json (BasicJsonType &j, typename BasicJsonType::array_t &&arr)
template<typename BasicJsonType , typename CompatibleObjectType , enable_if_t< is_compatible_object_type< BasicJsonType, CompatibleObjectType >::value &&!is_basic_json< CompatibleObjectType >::value, int > = 0>
void | to_json (BasicJsonType &j, const CompatibleObjectType &obj)
template<typename BasicJsonType >
void | to_json (BasicJsonType &j, typename BasicJsonType::object_t &&obj)
template<typename BasicJsonType , typename T , std::size_t N, enable_if_t< !std::is_constructible< typename BasicJsonType::string_t, const T(&)[N]>::value, int > = 0>
void | to_json (BasicJsonType &j, const T(&arr)[N])
template<typename BasicJsonType , typename T1 , typename T2 , enable_if_t< std::is_constructible< BasicJsonType, T1 >::value &&std::is_constructible< BasicJsonType, T2 >::value, int > = 0>
void | to_json (BasicJsonType &j, const std::pair< T1, T2 > &p)
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< T, iteration_proxy_value< typename BasicJsonType::iterator >>::value, int > = 0>
void | to_json (BasicJsonType &j, const T &b)
template<typename BasicJsonType , typename Tuple , std::size_t... Idx>
void | to_json_tuple_impl (BasicJsonType &j, const Tuple &t, index_sequence< Idx... >)
std::size_t | combine (std::size_t seed, std::size_t h) noexcept
template<typename BasicJsonType >
std::size_t | hash (const BasicJsonType &j)
| hash a JSON value More...
template<typename IteratorType >
iterator_input_adapter_factory< IteratorType >::adapter_type | input_adapter (IteratorType first, IteratorType last)
template<typename ContainerType >
container_input_adapter_factory_impl::container_input_adapter_factory< ContainerType >::adapter_type | input_adapter (const ContainerType &container)
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 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 T , std::size_t N>
auto | input_adapter (T(&array)[N]) -> decltype(input_adapter(array, array+N))
static bool | little_endianess (int num=1) noexcept
| determine system byte order 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...

## 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 8091 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 8071 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 5649 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 3314 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 3317 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 3311 of file json.hpp.

## difference_type_t

template<typename T >

using nlohmann::detail::difference_type_t = typedef typename T::difference_type

Definition at line 3466 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 3048 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 8109 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 8102 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 3484 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 3487 of file json.hpp.

## index_sequence

template<size_t... Ints>

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

Definition at line 3090 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 3152 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 3308 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 3324 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 3320 of file json.hpp.

## iterator_category_t

template<typename T >

using nlohmann::detail::iterator_category_t = typedef typename T::iterator_category

Definition at line 3475 of file json.hpp.

## iterator_t

template<typename T >

using nlohmann::detail::iterator_t = typedef typename T::iterator

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

## key_type_t

template<typename T >

using nlohmann::detail::key_type_t = typedef typename T::key_type

Definition at line 3460 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 3144 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 3136 of file json.hpp.

## mapped_type_t

template<typename T >

using nlohmann::detail::mapped_type_t = typedef typename T::mapped_type

Definition at line 3457 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 8067 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 8083 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 8075 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 8079 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 13151 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 8114 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 10700 of file json.hpp.

## pointer_t

template<typename T >

using nlohmann::detail::pointer_t = typedef typename T::pointer

Definition at line 3469 of file json.hpp.

## reference_t

template<typename T >

using nlohmann::detail::reference_t = typedef typename T::reference

Definition at line 3472 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 8106 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 8095 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 8087 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 3481 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 3034 of file json.hpp.

## value_type_t

template<typename T >

using nlohmann::detail::value_type_t = typedef typename T::value_type

Definition at line 3463 of file json.hpp.

## void_t

template<typename ... Ts>

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

Definition at line 3211 of file json.hpp.

## Enumeration Type Documentation

## cbor_tag_handler_t

enum nlohmann::detail::cbor_tag_handler_t

strong

how to treat CBOR tags

Enumerator
error | throw a parse_error exception in case of a tag
ignore | ignore tags

Definition at line 8212 of file json.hpp.

## error_handler_t

enum nlohmann::detail::error_handler_t

strong

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

## input_format_t

enum nlohmann::detail::input_format_t

strong

the supported input formats

Enumerator
json |
cbor |
msgpack |
ubjson |
bson |

Definition at line 5250 of file json.hpp.

## parse_event_t

enum nlohmann::detail::parse_event_t : 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 10682 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 118 of file json.hpp.

## Function Documentation

## combine()

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

inline noexcept

Definition at line 5099 of file json.hpp.

Referenced by hash().

## escape()

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

inline

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

Parameters

  [in] | s | string to escape

Returns
  escaped string

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

Definition at line 2551 of file json.hpp.

References replace_substring().

Referenced by nlohmann::detail::exception::diagnostics(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::diff(), nlohmann::json_pointer< BasicJsonType >::flatten(), and nlohmann::json_pointer< BasicJsonType >::to_string().

## from_json() [1/19]

template<typename BasicJsonType >

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

Definition at line 3841 of file json.hpp.

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

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

## from_json() [2/19]

template<typename BasicJsonType >

void nlohmann::detail::from_json | ( | const BasicJsonType & | j,
|  | typename BasicJsonType::boolean_t & | b
| ) |  |

Definition at line 3881 of file json.hpp.

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

## from_json() [3/19]

template<typename BasicJsonType >

void nlohmann::detail::from_json | ( | const BasicJsonType & | j,
|  | typename BasicJsonType::string_t & | s
| ) |  |

Definition at line 3891 of file json.hpp.

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

## from_json() [4/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 3907 of file json.hpp.

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

## from_json() [5/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 get_arithmetic_value().

## from_json() [6/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 get_arithmetic_value().

## from_json() [7/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 get_arithmetic_value().

## from_json() [8/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 get_arithmetic_value().

## from_json() [9/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 3947 of file json.hpp.

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

## from_json() [10/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 3964 of file json.hpp.

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

## from_json() [11/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 3979 of file json.hpp.

## from_json() [12/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 4058 of file json.hpp.

## from_json() [13/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::detail::type_error::create(), from_json_inplace_array_impl(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and string.

## from_json() [14/19]

template<typename BasicJsonType >

void nlohmann::detail::from_json | ( | const BasicJsonType & | j,
|  | typename BasicJsonType::binary_t & | bin
| ) |  |

Definition at line 4091 of file json.hpp.

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

## from_json() [15/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 4103 of file json.hpp.

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

## from_json() [16/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 4135 of file json.hpp.

References boolean, nlohmann::detail::type_error::create(), JSON_THROW, number_float, number_integer, number_unsigned, and string.

## from_json() [17/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 4197 of file json.hpp.

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

## from_json() [18/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 4211 of file json.hpp.

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

## from_json() [19/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 4231 of file json.hpp.

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

Referenced by nlohmann::adl_serializer< ValueType, typename >::from_json(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::get_impl(), and nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::get_to().

## from_json_array_impl() [1/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.

Referenced by void().

## from_json_array_impl() [2/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 3995 of file json.hpp.

## from_json_array_impl() [3/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 4009 of file json.hpp.

## from_json_array_impl() [4/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.

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

Referenced by from_json().

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

Referenced by from_json(), and from_json_tuple_impl().

## from_json_tuple_impl() [2/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 4179 of file json.hpp.

References from_json_tuple_impl().

## from_json_tuple_impl() [3/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 4185 of file json.hpp.

References from_json_tuple_impl_base().

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

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

Referenced by from_json_tuple_impl().

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

References nlohmann::detail::iteration_proxy_value< IteratorType >::key().

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

References nlohmann::detail::type_error::create(), JSON_THROW, number_float, number_integer, number_unsigned, and string.

Referenced by from_json().

## 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

  BasicJsonType | basic_json specialization

Parameters

  j | JSON value to hash

Returns
  hash value of j

Definition at line 5117 of file json.hpp.

References combine(), and JSON_ASSERT.

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

## input_adapter() [1/7]

template<typename IteratorType >

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

Definition at line 5594 of file json.hpp.

Referenced by nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::accept(), nlohmann::detail::container_input_adapter_factory_impl::container_input_adapter_factory< ContainerType, void_t< decltype(begin(std::declval< ContainerType >()), end(std::declval< ContainerType >()))> >::create(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::from_bson(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::from_cbor(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::from_msgpack(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::from_ubjson(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_high_precision_number(), input_adapter(), nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::parse(), and nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::sax_parse().

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

## input_adapter() [3/7]

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

inline

Definition at line 5634 of file json.hpp.

## input_adapter() [4/7]

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

inline

Definition at line 5639 of file json.hpp.

## input_adapter() [5/7]

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

inline

Definition at line 5644 of file json.hpp.

## input_adapter() [6/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 5659 of file json.hpp.

References input_adapter().

## 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 5667 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 4300 of file json.hpp.

References nlohmann::to_string().

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

## little_endianess()

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

inline static noexcept

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

## operator<()

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

inline noexcept

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

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

## 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] | s | the string to manipulate; changed so that all occurrences of f are replaced with t
  [in] | f | the substring to replace with t
  [in] | t | the 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 2533 of file json.hpp.

References JSON_ASSERT.

Referenced by escape(), and unescape().

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

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

## to_json() [1/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,
|  | T | b
| ) |  |

noexcept

Definition at line 4686 of file json.hpp.

Referenced by nlohmann::detail::to_json_fn::operator()(), and to_json_tuple_impl().

## to_json() [2/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 4693 of file json.hpp.

## to_json() [3/17]

template<typename BasicJsonType >

void nlohmann::detail::to_json | ( | BasicJsonType & | j,
|  | typename BasicJsonType::string_t && | s
| ) |  |

Definition at line 4699 of file json.hpp.

## to_json() [4/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 4706 of file json.hpp.

## to_json() [5/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 4713 of file json.hpp.

## to_json() [6/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 4720 of file json.hpp.

## to_json() [7/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 4727 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 4734 of file json.hpp.

## to_json() [9/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 4747 of file json.hpp.

## to_json() [10/17]

template<typename BasicJsonType >

void nlohmann::detail::to_json | ( | BasicJsonType & | j,
|  | const typename BasicJsonType::binary_t & | bin
| ) |  |

Definition at line 4753 of file json.hpp.

## to_json() [11/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 4760 of file json.hpp.

## to_json() [12/17]

template<typename BasicJsonType >

void nlohmann::detail::to_json | ( | BasicJsonType & | j,
|  | typename BasicJsonType::array_t && | arr
| ) |  |

Definition at line 4766 of file json.hpp.

## to_json() [13/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 4773 of file json.hpp.

## to_json() [14/17]

template<typename BasicJsonType >

void nlohmann::detail::to_json | ( | BasicJsonType & | j,
|  | typename BasicJsonType::object_t && | obj
| ) |  |

Definition at line 4779 of file json.hpp.

References value.

## to_json() [15/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 4789 of file json.hpp.

## to_json() [16/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 4795 of file json.hpp.

References value.

## to_json() [17/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 4803 of file json.hpp.

Referenced by nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::basic_json(), and nlohmann::adl_serializer< ValueType, typename >::to_json().

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

References to_json(), and value.

## unescape()

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

static

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

Parameters

  [in] | s | string to unescape

Returns
  unescaped string

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

Definition at line 2565 of file json.hpp.

References replace_substring().

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

## void()

j template nlohmann::detail::void | ( |  | ) |

Definition at line 4061 of file json.hpp.

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

Referenced by nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_reader(), cudnn_frontend::check_rule(), cudnn_frontend::get_heuristics_list(), and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse().