#include "json.h"
Collaboration diagram for detail::iteration_proxy_value< IteratorType >:Public Types | |
| using | difference_type = std::ptrdiff_t |
| using | iterator_category = std::forward_iterator_tag |
| using | pointer = value_type * |
| using | reference = value_type & |
| using | string_type = typename std::remove_cv< typename std::remove_reference< decltype(std::declval< IteratorType >().key()) >::type >::type |
| using | value_type = iteration_proxy_value |
Public Member Functions | |
| iteration_proxy_value ()=default | |
| iteration_proxy_value (iteration_proxy_value &&) noexcept(std::is_nothrow_move_constructible< IteratorType >::value &&std::is_nothrow_move_constructible< string_type >::value)=default | |
| iteration_proxy_value (iteration_proxy_value const &)=default | |
| iteration_proxy_value (IteratorType it, std::size_t array_index_=0) noexcept(std::is_nothrow_move_constructible< IteratorType >::value &&std::is_nothrow_default_constructible< string_type >::value) | |
| ~iteration_proxy_value ()=default | |
| const string_type & | key () const |
| return key of the iterator | |
| bool | operator!= (const iteration_proxy_value &o) const |
| inequality operator (needed for range-based for) | |
| const iteration_proxy_value & | operator* () const |
| dereference operator (needed for range-based for) | |
| iteration_proxy_value & | operator++ () |
| increment operator (needed for range-based for) | |
| iteration_proxy_value | operator++ (int) & |
| iteration_proxy_value & | operator= (iteration_proxy_value &&) noexcept(std::is_nothrow_move_assignable< IteratorType >::value &&std::is_nothrow_move_assignable< string_type >::value)=default |
| iteration_proxy_value & | operator= (iteration_proxy_value const &)=default |
| bool | operator== (const iteration_proxy_value &o) const |
| equality operator (needed for InputIterator) | |
| IteratorType::reference | value () const |
| return value of the iterator | |
Private Attributes | |
| IteratorType | anchor {} |
| the iterator | |
| std::size_t | array_index = 0 |
| an index for arrays (used to create key names) | |
| std::size_t | array_index_last = 0 |
| last stringified array index | |
| string_type | array_index_str = "0" |
| a string representation of the array index | |
| string_type | empty_str {} |
| an empty string (to return a reference for primitive values) | |
| using detail::iteration_proxy_value< IteratorType >::difference_type = std::ptrdiff_t |
| using detail::iteration_proxy_value< IteratorType >::iterator_category = std::forward_iterator_tag |
| using detail::iteration_proxy_value< IteratorType >::pointer = value_type * |
| using detail::iteration_proxy_value< IteratorType >::reference = value_type & |
| using detail::iteration_proxy_value< IteratorType >::string_type = typename std::remove_cv< typename std::remove_reference<decltype( std::declval<IteratorType>().key() ) >::type >::type |
| using detail::iteration_proxy_value< IteratorType >::value_type = iteration_proxy_value |
|
explicitdefault |
Referenced by detail::iteration_proxy_value< IteratorType >::operator++().
Here is the caller graph for this function:
|
inlineexplicitnoexcept |
|
default |
|
defaultnoexcept |
|
default |
|
inline |
return key of the iterator
Definition at line 5580 of file json.h.
References detail::iteration_proxy_value< IteratorType >::anchor, detail::array, detail::iteration_proxy_value< IteratorType >::array_index, detail::iteration_proxy_value< IteratorType >::array_index_last, detail::iteration_proxy_value< IteratorType >::array_index_str, detail::binary, detail::boolean, detail::discarded, detail::iteration_proxy_value< IteratorType >::empty_str, detail::int_to_string(), JSON_ASSERT, detail::null, detail::number_float, detail::number_integer, detail::number_unsigned, detail::object, and detail::string.
Here is the call graph for this function:
|
inline |
inequality operator (needed for range-based for)
Definition at line 5574 of file json.h.
References detail::iteration_proxy_value< IteratorType >::anchor.
|
inline |
|
inline |
increment operator (needed for range-based for)
Definition at line 5551 of file json.h.
References detail::iteration_proxy_value< IteratorType >::anchor, and detail::iteration_proxy_value< IteratorType >::array_index.
|
inline |
Definition at line 5559 of file json.h.
References detail::iteration_proxy_value< IteratorType >::iteration_proxy_value(), detail::iteration_proxy_value< IteratorType >::anchor, and detail::iteration_proxy_value< IteratorType >::array_index.
Here is the call graph for this function:
|
defaultnoexcept |
|
default |
|
inline |
equality operator (needed for InputIterator)
Definition at line 5568 of file json.h.
References detail::iteration_proxy_value< IteratorType >::anchor.
|
inline |
return value of the iterator
Definition at line 5616 of file json.h.
References detail::iteration_proxy_value< IteratorType >::anchor.
|
private |
the iterator
Definition at line 5514 of file json.h.
Referenced by detail::iteration_proxy_value< IteratorType >::key(), detail::iteration_proxy_value< IteratorType >::operator!=(), detail::iteration_proxy_value< IteratorType >::operator++(), detail::iteration_proxy_value< IteratorType >::operator++(), detail::iteration_proxy_value< IteratorType >::operator==(), and detail::iteration_proxy_value< IteratorType >::value().
|
private |
an index for arrays (used to create key names)
Definition at line 5516 of file json.h.
Referenced by detail::iteration_proxy_value< IteratorType >::key(), detail::iteration_proxy_value< IteratorType >::operator++(), and detail::iteration_proxy_value< IteratorType >::operator++().
|
mutableprivate |
last stringified array index
Definition at line 5518 of file json.h.
Referenced by detail::iteration_proxy_value< IteratorType >::key().
|
mutableprivate |
a string representation of the array index
Definition at line 5520 of file json.h.
Referenced by detail::iteration_proxy_value< IteratorType >::key().
|
private |
an empty string (to return a reference for primitive values)
Definition at line 5522 of file json.h.
Referenced by detail::iteration_proxy_value< IteratorType >::key().