|
hoshi-lang dev
Yet another programming language
|
#include <json.hpp>
Public Types | |
| using | difference_type = std::ptrdiff_t |
| using | value_type = iteration_proxy_value |
| using | pointer = value_type * |
| using | reference = value_type & |
| using | iterator_category = std::forward_iterator_tag |
| using | string_type = typename std::remove_cv< typename std::remove_reference< decltype(std::declval< IteratorType >().key()) >::type >::type |
Public Member Functions | |
| iteration_proxy_value ()=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 (iteration_proxy_value const &)=default | |
| iteration_proxy_value & | operator= (iteration_proxy_value const &)=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 & | operator= (iteration_proxy_value &&) noexcept(std::is_nothrow_move_assignable< IteratorType >::value &&std::is_nothrow_move_assignable< string_type >::value)=default |
| ~iteration_proxy_value ()=default | |
| 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) & |
| bool | operator== (const iteration_proxy_value &o) const |
| equality operator (needed for InputIterator) | |
| bool | operator!= (const iteration_proxy_value &o) const |
| inequality operator (needed for range-based for) | |
| const string_type & | key () const |
| return key of the iterator | |
| 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 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 |
|
explicitdefault |
Referenced by iteration_proxy_value< IteratorType >::operator++().

|
inlineexplicitnoexcept |
|
default |
|
defaultnoexcept |
|
default |
|
inline |
return key of the iterator
Definition at line 5539 of file json.hpp.
References iteration_proxy_value< IteratorType >::anchor, detail::array, iteration_proxy_value< IteratorType >::array_index, iteration_proxy_value< IteratorType >::array_index_last, iteration_proxy_value< IteratorType >::array_index_str, detail::binary, detail::boolean, detail::discarded, 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.

|
inline |
inequality operator (needed for range-based for)
Definition at line 5533 of file json.hpp.
References iteration_proxy_value< IteratorType >::anchor.
|
inline |
|
inline |
increment operator (needed for range-based for)
Definition at line 5510 of file json.hpp.
References iteration_proxy_value< IteratorType >::anchor, and iteration_proxy_value< IteratorType >::array_index.
|
inline |
Definition at line 5518 of file json.hpp.
References iteration_proxy_value< IteratorType >::anchor, iteration_proxy_value< IteratorType >::array_index, and iteration_proxy_value< IteratorType >::iteration_proxy_value().

|
defaultnoexcept |
|
default |
|
inline |
equality operator (needed for InputIterator)
Definition at line 5527 of file json.hpp.
References iteration_proxy_value< IteratorType >::anchor.
|
inline |
return value of the iterator
Definition at line 5575 of file json.hpp.
References iteration_proxy_value< IteratorType >::anchor.
|
private |
the iterator
Definition at line 5473 of file json.hpp.
Referenced by iteration_proxy_value< IteratorType >::key(), iteration_proxy_value< IteratorType >::operator!=(), iteration_proxy_value< IteratorType >::operator++(), iteration_proxy_value< IteratorType >::operator++(), iteration_proxy_value< IteratorType >::operator==(), and iteration_proxy_value< IteratorType >::value().
|
private |
an index for arrays (used to create key names)
Definition at line 5475 of file json.hpp.
Referenced by iteration_proxy_value< IteratorType >::key(), iteration_proxy_value< IteratorType >::operator++(), and iteration_proxy_value< IteratorType >::operator++().
|
mutableprivate |
last stringified array index
Definition at line 5477 of file json.hpp.
Referenced by iteration_proxy_value< IteratorType >::key().
|
mutableprivate |
a string representation of the array index
Definition at line 5479 of file json.hpp.
Referenced by iteration_proxy_value< IteratorType >::key().
|
private |
an empty string (to return a reference for primitive values)
Definition at line 5481 of file json.hpp.
Referenced by iteration_proxy_value< IteratorType >::key().