WPILibC++
2018.4.1-20180729181730-1145-g898076f
|
detail namespace with internal helper functions More...
Typedefs | |
template<typename RangeT > | |
using | IterOfRange = decltype(std::begin(std::declval< RangeT & >())) |
template<typename RangeT > | |
using | ValueOfRange = typename std::remove_reference< decltype(*std::begin(std::declval< RangeT & >()))>::type |
template<typename ZipType , typename... Iters> | |
using | zip_traits = iterator_facade_base< ZipType, typename std::common_type< std::bidirectional_iterator_tag, typename std::iterator_traits< Iters >::iterator_category...>::type, typename ZipTupleType< Iters...>::type, typename std::iterator_traits< typename std::tuple_element< 0, std::tuple< Iters...>>::type >::difference_type, typename ZipTupleType< Iters...>::type *, typename ZipTupleType< Iters...>::type > |
template<bool B, typename T = void> | |
using | enable_if_t = typename std::enable_if< B, T >::type |
template<typename T > | |
using | uncvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type |
template<typename... Ts> | |
using | index_sequence_for = make_index_sequence< sizeof...(Ts)> |
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::discarded } |
the JSON type enumeration More... | |
Functions | |
template<typename N > | |
bool | to_float (const Twine &T, N &Num, N(*StrTo)(const char *, char **)) |
template<typename IteratorT > | |
std::string | join_impl (IteratorT Begin, IteratorT End, StringRef Separator, std::input_iterator_tag) |
template<typename IteratorT > | |
std::string | join_impl (IteratorT Begin, IteratorT End, StringRef Separator, std::forward_iterator_tag) |
template<typename Sep > | |
void | join_items_impl (std::string &Result, Sep Separator) |
template<typename Sep , typename Arg > | |
void | join_items_impl (std::string &Result, Sep Separator, const Arg &Item) |
template<typename Sep , typename Arg1 , typename... Args> | |
void | join_items_impl (std::string &Result, Sep Separator, const Arg1 &A1, Args &&...Items) |
size_t | join_one_item_size (char C) |
size_t | join_one_item_size (const char *S) |
template<typename T > | |
size_t | join_one_item_size (const T &Str) |
size_t | join_items_size () |
template<typename A1 > | |
size_t | join_items_size (const A1 &A) |
template<typename A1 , typename... Args> | |
size_t | join_items_size (const A1 &A, Args &&...Items) |
template<typename F , typename Tuple , std::size_t... I> | |
auto | apply_tuple_impl (F &&f, Tuple &&t, index_sequence< I...>) -> decltype(std::forward< F >(f)(std::get< I >(std::forward< Tuple >(t))...)) |
NLOHMANN_JSON_HAS_HELPER (mapped_type) | |
NLOHMANN_JSON_HAS_HELPER (key_type) | |
NLOHMANN_JSON_HAS_HELPER (value_type) | |
NLOHMANN_JSON_HAS_HELPER (iterator) | |
bool | operator< (const value_t lhs, const value_t rhs) noexcept |
comparison operator for JSON types More... | |
template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value andnot std::is_same< ArithmeticType, bool >::value, int > = 0> | |
void | get_arithmetic_value (const BasicJsonType &j, ArithmeticType &val) |
template<typename BasicJsonType > | |
void | from_json (const BasicJsonType &j, bool &b) |
template<typename BasicJsonType > | |
void | from_json (const BasicJsonType &j, std::string &s) |
template<typename BasicJsonType > | |
void | from_json (const BasicJsonType &j, double &val) |
template<typename BasicJsonType > | |
void | from_json (const BasicJsonType &j, uint64_t &val) |
template<typename BasicJsonType > | |
void | from_json (const BasicJsonType &j, int64_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 > | |
void | from_json (const BasicJsonType &j, typename BasicJsonType::array_t &arr) |
template<typename BasicJsonType , typename CompatibleArrayType > | |
void | from_json_array_impl (const BasicJsonType &j, CompatibleArrayType &arr, priority_tag< 0 >) |
template<typename BasicJsonType , typename CompatibleArrayType > | |
auto | from_json_array_impl (const BasicJsonType &j, CompatibleArrayType &arr, priority_tag< 1 >) -> decltype(arr.reserve(std::declval< typename CompatibleArrayType::size_type >()), void()) |
template<typename BasicJsonType , typename T , std::size_t N> | |
void | from_json_array_impl (const BasicJsonType &j, std::array< T, N > &arr, priority_tag< 2 >) |
template<typename BasicJsonType , typename CompatibleArrayType , enable_if_t< is_compatible_array_type< BasicJsonType, CompatibleArrayType >::value andnot std::is_same< typename BasicJsonType::array_t, CompatibleArrayType >::value andstd::is_constructible< BasicJsonType, typename CompatibleArrayType::value_type >::value, int > = 0> | |
void | from_json (const BasicJsonType &j, CompatibleArrayType &arr) |
template<typename BasicJsonType > | |
void | from_json (const BasicJsonType &j, typename BasicJsonType::object_t &obj) |
template<typename BasicJsonType , typename CompatibleObjectType , enable_if_t< is_compatible_object_type< BasicJsonType, CompatibleObjectType >::value andnot std::is_same< typename BasicJsonType::object_t, CompatibleObjectType >::value, int > = 0> | |
void | from_json (const BasicJsonType &j, CompatibleObjectType &obj) |
template<typename BasicJsonType , typename ArithmeticType , enable_if_t< std::is_arithmetic< ArithmeticType >::value andnot std::is_same< ArithmeticType, uint64_t >::value andnot std::is_same< ArithmeticType, int64_t >::value andnot std::is_same< ArithmeticType, double >::value andnot std::is_same< ArithmeticType, bool >::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 T , enable_if_t< std::is_same< T, bool >::value, int > = 0> | |
void | to_json (BasicJsonType &j, T b) noexcept |
template<typename BasicJsonType , typename CompatibleString , enable_if_t< std::is_constructible< StringRef, CompatibleString >::value, int > = 0> | |
void | to_json (BasicJsonType &j, const CompatibleString &s) |
template<typename BasicJsonType , typename T , enable_if_t< std::is_same< std::string, T >::value, int > = 0> | |
void | to_json (BasicJsonType &j, 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< uint64_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< int64_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 orstd::is_same< typename BasicJsonType::array_t, CompatibleArrayType >::value, int > = 0> | |
void | to_json (BasicJsonType &j, const CompatibleArrayType &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, 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< not std::is_constructible< StringRef, T(&)[N]>::value, int > = 0> | |
void | to_json (BasicJsonType &j, T(&arr)[N]) |
template<typename BasicJsonType , typename... Args> | |
void | to_json (BasicJsonType &j, const std::pair< Args...> &p) |
template<typename BasicJsonType , typename Tuple , std::size_t... Idx> | |
void | to_json_tuple_impl (BasicJsonType &j, const Tuple &t, index_sequence< Idx...>) |
template<typename BasicJsonType , typename... Args> | |
void | to_json (BasicJsonType &j, const std::tuple< Args...> &t) |
detail namespace with internal helper functions
This namespace collects functions that should not be exposed, implementations of some json methods, and meta-programming helpers.
|
strong |
the JSON type enumeration
This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions json::is_null(), json::is_object(), json::is_array(), json::is_string(), json::is_boolean(), json::is_number() (with json::is_number_integer(), json::is_number_unsigned(), and json::is_number_float()), json::is_discarded(), json::is_primitive(), and json::is_structured() rely on it.
|
inlinenoexcept |
comparison operator for JSON types
Returns an ordering that is similar to Python: