|
| template<typename UValue , typename UMember , typename = std::enable_if_t< !std::is_same_v<UMember, TMember> && std::is_convertible_v<UMember*, TMember*> >> |
| | basic_object_iterator (const basic_object_iterator< UValue, UMember > &source) noexcept |
| | This allows conversion from an object_iterator to a const_object_iterator.
|
| |
| basic_object_iterator & | operator++ () noexcept |
| |
| basic_object_iterator | operator++ (int) noexcept |
| |
| basic_object_iterator & | operator-- () noexcept |
| |
| basic_object_iterator | operator-- (int) noexcept |
| |
| basic_object_iterator & | operator+= (difference_type n) noexcept |
| |
| basic_object_iterator & | operator-= (difference_type n) noexcept |
| |
| basic_object_iterator | operator+ (difference_type n) const noexcept |
| |
| basic_object_iterator | operator- (difference_type n) const noexcept |
| |
| template<typename UValue , typename UMember > |
| difference_type | operator- (const basic_object_iterator< UValue, UMember > &other) const noexcept |
| |
| template<typename UValue , typename UMember > |
| bool | operator== (const basic_object_iterator< UValue, UMember > &other) const noexcept |
| |
| template<typename UValue , typename UMember > |
| auto | operator<=> (const basic_object_iterator< UValue, UMember > &other) const noexcept |
| |
| reference | operator* () const noexcept |
| |
| pointer | operator-> () const noexcept |
| |
| reference | operator[] (difference_type n) const noexcept |
| |
template<typename TValue, typename TMember>
struct jsonv::value::basic_object_iterator< TValue, TMember >
The base iterator type for iterating over object types.
It is a random-access iterator over the members of an object, which are kept sorted by key, and dereferences to a basic_object_reference. Like std::vector<bool>::iterator, it gives std::random_access_iterator_tag as its iterator_category although its reference is a proxy: the functions which dispatch on the category, like std::prev and std::advance, need it to step backward or jump.
Like the iterators of a std::vector, these are invalidated by inserting into or erasing from the object.
Definition at line 415 of file value.hpp.
template<typename TValue , typename TMember >
template<typename UValue , typename UMember , typename = std::enable_if_t< !std::is_same_v<UMember, TMember> && std::is_convertible_v<UMember*, TMember*> >>
This allows conversion from an object_iterator to a const_object_iterator.
Definition at line 452 of file value.hpp.