libMVRgdtf 40bc00a
A library for GDTF and MVR
|
detail namespace with internal helper functions More...
Namespaces | |
namespace | dtoa_impl |
implements the Grisu2 algorithm for binary to decimal floating-point conversion. | |
Typedefs | |
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 >()) |
Enumerations | |
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... | |
enum class | cbor_tag_handler_t { error , ignore } |
how to treat CBOR tags More... | |
enum class | error_handler_t { strict , replace , ignore } |
how to treat decoding errors More... | |
Functions | |
bool | operator< (const value_t lhs, const value_t rhs) noexcept |
comparison operator for JSON types | |
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 > | |
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 > | |
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 >(), void()) |
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 A1 , typename A2 > | |
void | from_json (const BasicJsonType &j, std::pair< A1, A2 > &p) |
template<typename BasicJsonType , typename Tuple , std::size_t... Idx> | |
void | from_json_tuple_impl (const BasicJsonType &j, Tuple &t, index_sequence< Idx... >) |
template<typename BasicJsonType , typename... Args> | |
void | from_json (const BasicJsonType &j, std::tuple< Args... > &t) |
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... >) |
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.
using nlohmann::detail::detected_or = typedef detector<Default, void, Op, Args...> |
using nlohmann::detail::detected_or_t = typedef typename detected_or<Default, Op, Args...>::type |
using nlohmann::detail::detected_t = typedef typename detector<nonesuch, void, Op, Args...>::type |
using nlohmann::detail::difference_type_t = typedef typename T::difference_type |
using nlohmann::detail::from_json_function = typedef decltype(T::from_json(std::declval<Args>()...)) |
using nlohmann::detail::get_template_function = typedef decltype(std::declval<T>().template get<U>()) |
using nlohmann::detail::is_detected = typedef typename detector<nonesuch, void, Op, Args...>::value_t |
using nlohmann::detail::is_detected_convertible = typedef std::is_convertible<detected_t<Op, Args...>, To> |
using nlohmann::detail::is_detected_exact = typedef std::is_same<Expected, detected_t<Op, Args...> > |
using nlohmann::detail::iterator_category_t = typedef typename T::iterator_category |
using nlohmann::detail::iterator_t = typedef typename T::iterator |
using nlohmann::detail::key_type_t = typedef typename T::key_type |
using nlohmann::detail::mapped_type_t = typedef typename T::mapped_type |
using nlohmann::detail::pointer_t = typedef typename T::pointer |
using nlohmann::detail::reference_t = typedef typename T::reference |
using nlohmann::detail::to_json_function = typedef decltype(T::to_json(std::declval<Args>()...)) |
using nlohmann::detail::value_type_t = typedef typename T::value_type |
using nlohmann::detail::void_t = typedef typename make_void<Ts...>::type |
|
strong |
how to treat CBOR tags
Enumerator | |
---|---|
error | throw a parse_error exception in case of a tag |
ignore | ignore tags |
|
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 |
|
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.
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
ArithmeticType & | val | ||
) |
auto nlohmann::detail::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()) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
ConstructibleObjectType & | obj | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
ConstructibleStringType & | s | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
EnumType & | e | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
std::forward_list< T, Allocator > & | l | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
std::map< Key, Value, Compare, Allocator > & | m | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
std::pair< A1, A2 > & | p | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
std::tuple< Args... > & | t | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > & | m | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
std::valarray< T > & | l | ||
) |
auto nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
T(&) | arr[N] | ||
) | -> decltype(j.template get<T>(), void()) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename BasicJsonType::binary_t & | bin | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename BasicJsonType::boolean_t & | b | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename BasicJsonType::number_float_t & | val | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename BasicJsonType::number_integer_t & | val | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename BasicJsonType::number_unsigned_t & | val | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename BasicJsonType::string_t & | s | ||
) |
void nlohmann::detail::from_json | ( | const BasicJsonType & | j, |
typename std::nullptr_t & | n | ||
) |
void nlohmann::detail::from_json_array_impl | ( | const BasicJsonType & | j, |
ConstructibleArrayType & | arr, | ||
priority_tag< 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()) |
auto nlohmann::detail::from_json_array_impl | ( | const BasicJsonType & | j, |
std::array< T, N > & | arr, | ||
priority_tag< 2 > | |||
) | -> decltype(j.template get<T>(), void()) |
void nlohmann::detail::from_json_array_impl | ( | const BasicJsonType & | j, |
typename BasicJsonType::array_t & | arr, | ||
priority_tag< 3 > | |||
) |
void nlohmann::detail::from_json_tuple_impl | ( | const BasicJsonType & | j, |
Tuple & | t, | ||
index_sequence< Idx... > | |||
) |
auto nlohmann::detail::get | ( | const nlohmann::detail::iteration_proxy_value< IteratorType > & | i | ) | -> decltype(i.key()) |
void nlohmann::detail::get_arithmetic_value | ( | const BasicJsonType & | j, |
ArithmeticType & | val | ||
) |
void nlohmann::detail::int_to_string | ( | string_type & | target, |
std::size_t | value | ||
) |
comparison operator for JSON types
Returns an ordering that is similar to Python:
|
noexcept |
|
noexcept |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const CompatibleArrayType & | arr | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const CompatibleObjectType & | obj | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const CompatibleString & | s | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const std::pair< T1, T2 > & | p | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const std::valarray< T > & | arr | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const std::vector< bool > & | e | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const T & | b | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const T(&) | arr[N] | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
const typename BasicJsonType::binary_t & | bin | ||
) |
|
noexcept |
|
noexcept |
|
noexcept |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
typename BasicJsonType::array_t && | arr | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
typename BasicJsonType::object_t && | obj | ||
) |
void nlohmann::detail::to_json | ( | BasicJsonType & | j, |
typename BasicJsonType::string_t && | s | ||
) |
void nlohmann::detail::to_json_tuple_impl | ( | BasicJsonType & | j, |
const Tuple & | t, | ||
index_sequence< Idx... > | |||
) |