33 template<
typename Base>
37 using difference_type = std::ptrdiff_t;
53 return static_cast<json_reverse_iterator>(base_iterator::operator++(1));
59 return static_cast<json_reverse_iterator&>(base_iterator::operator++());
65 return static_cast<json_reverse_iterator>(base_iterator::operator--(1));
71 return static_cast<json_reverse_iterator&>(base_iterator::operator--());
77 return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i));
83 return static_cast<json_reverse_iterator>(base_iterator::operator+(i));
89 return static_cast<json_reverse_iterator>(base_iterator::operator-(i));
105 auto key() const -> decltype(std::declval<Base>().
key())
107 auto it = --this->base();
114 auto it = --this->base();
115 return it.operator * ();
a template for a reverse iterator class
Definition: json_reverse_iterator.hpp:34
json_reverse_iterator operator+(difference_type i) const
add to iterator
Definition: json_reverse_iterator.hpp:81
auto key() const -> decltype(std::declval< Base >().key())
return the key of an object iterator
Definition: json_reverse_iterator.hpp:105
namespace for Niels Lohmann
Definition: adl_serializer.hpp:8
json_reverse_iterator(const typename base_iterator::iterator_type &it) noexcept
create reverse iterator from iterator
Definition: json_reverse_iterator.hpp:44
json_reverse_iterator & operator+=(difference_type i)
add to iterator
Definition: json_reverse_iterator.hpp:75
reference value() const
return the value of an iterator
Definition: json_reverse_iterator.hpp:112
reference operator[](difference_type n) const
access to successor
Definition: json_reverse_iterator.hpp:99
typename Base::reference reference
the reference type for the pointed-to element
Definition: json_reverse_iterator.hpp:41
json_reverse_iterator operator-(difference_type i) const
subtract from iterator
Definition: json_reverse_iterator.hpp:87
const json_reverse_iterator operator++(int)
post-increment (it++)
Definition: json_reverse_iterator.hpp:51
json_reverse_iterator & operator++()
pre-increment (++it)
Definition: json_reverse_iterator.hpp:57
const json_reverse_iterator operator--(int)
post-decrement (it–)
Definition: json_reverse_iterator.hpp:63
difference_type operator-(const json_reverse_iterator &other) const
return difference
Definition: json_reverse_iterator.hpp:93
std::reverse_iterator< Base > base_iterator
shortcut to the reverse iterator adapter
Definition: json_reverse_iterator.hpp:39
json_reverse_iterator & operator--()
pre-decrement (–it)
Definition: json_reverse_iterator.hpp:69
json_reverse_iterator(const base_iterator &it) noexcept
create reverse iterator from base class
Definition: json_reverse_iterator.hpp:48