Template Class json_reverse_iterator

Inheritance Relationships

Base Types

  • public std::reverse_iterator< Base >

  • public std::reverse_iterator< Base >

Class Documentation

template<typename Base>
class json_reverse_iterator : public std::reverse_iterator<Base>, public std::reverse_iterator<Base>

a template for a reverse iterator class

@requirement The class satisfies the following concept requirements:

  • BidirectionalIterator: The iterator that can be moved can be moved in both directions (i.e. incremented and decremented).

  • OutputIterator: It is possible to write to the pointed-to element (only if Base is iterator).

Since

version 1.0.0

Template Parameters:

Base – the base iterator type to reverse. Valid types are iterator (to create reverse_iterator) and const_iterator (to create const_reverse_iterator).

Public Types

using difference_type = std::ptrdiff_t
using base_iterator = std::reverse_iterator<Base>

shortcut to the reverse iterator adapter

using reference = typename Base::reference

the reference type for the pointed-to element

using difference_type = std::ptrdiff_t
using base_iterator = std::reverse_iterator<Base>

shortcut to the reverse iterator adapter

using reference = typename Base::reference

the reference type for the pointed-to element

Public Functions

inline explicit json_reverse_iterator(const typename base_iterator::iterator_type &it) noexcept

create reverse iterator from iterator

inline explicit json_reverse_iterator(const base_iterator &it) noexcept

create reverse iterator from base class

inline json_reverse_iterator const operator++(int)

post-increment (it++)

inline json_reverse_iterator &operator++()

pre-increment (++it)

inline json_reverse_iterator const operator--(int)

post-decrement (it&#8212;)

inline json_reverse_iterator &operator--()

pre-decrement (&#8212;it)

inline json_reverse_iterator &operator+=(difference_type i)

add to iterator

inline json_reverse_iterator operator+(difference_type i) const

add to iterator

inline json_reverse_iterator operator-(difference_type i) const

subtract from iterator

inline difference_type operator-(const json_reverse_iterator &other) const

return difference

inline reference operator[](difference_type n) const

access to successor

inline auto key() const -> decltype(std::declval<Base>().key())

return the key of an object iterator

inline reference value() const

return the value of an iterator

inline explicit json_reverse_iterator(const typename base_iterator::iterator_type &it) noexcept

create reverse iterator from iterator

inline explicit json_reverse_iterator(const base_iterator &it) noexcept

create reverse iterator from base class

inline json_reverse_iterator const operator++(int)

post-increment (it++)

inline json_reverse_iterator &operator++()

pre-increment (++it)

inline json_reverse_iterator const operator--(int)

post-decrement (it&#8212;)

inline json_reverse_iterator &operator--()

pre-decrement (&#8212;it)

inline json_reverse_iterator &operator+=(difference_type i)

add to iterator

inline json_reverse_iterator operator+(difference_type i) const

add to iterator

inline json_reverse_iterator operator-(difference_type i) const

subtract from iterator

inline difference_type operator-(const json_reverse_iterator &other) const

return difference

inline reference operator[](difference_type n) const

access to successor

inline auto key() const -> decltype(std::declval<Base>().key())

return the key of an object iterator

inline reference value() const

return the value of an iterator