| 9980 | */ |
| 9981 | template<typename Base> |
| 9982 | class json_reverse_iterator : public std::reverse_iterator<Base> |
| 9983 | { |
| 9984 | public: |
| 9985 | using difference_type = std::ptrdiff_t; |
| 9986 | /// shortcut to the reverse iterator adapter |
| 9987 | using base_iterator = std::reverse_iterator<Base>; |
| 9988 | /// the reference type for the pointed-to element |
| 9989 | using reference = typename Base::reference; |
| 9990 | |
| 9991 | /// create reverse iterator from iterator |
| 9992 | explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept |
| 9993 | : base_iterator(it) {} |
| 9994 | |
| 9995 | /// create reverse iterator from base class |
| 9996 | explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} |
| 9997 | |
| 9998 | /// post-increment (it++) |
| 9999 | json_reverse_iterator const operator++(int) |
| 10000 | { |
| 10001 | return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); |
| 10002 | } |
| 10003 | |
| 10004 | /// pre-increment (++it) |
| 10005 | json_reverse_iterator& operator++() |
| 10006 | { |
| 10007 | return static_cast<json_reverse_iterator&>(base_iterator::operator++()); |
| 10008 | } |
| 10009 | |
| 10010 | /// post-decrement (it--) |
| 10011 | json_reverse_iterator const operator--(int) |
| 10012 | { |
| 10013 | return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); |
| 10014 | } |
| 10015 | |
| 10016 | /// pre-decrement (--it) |
| 10017 | json_reverse_iterator& operator--() |
| 10018 | { |
| 10019 | return static_cast<json_reverse_iterator&>(base_iterator::operator--()); |
| 10020 | } |
| 10021 | |
| 10022 | /// add to iterator |
| 10023 | json_reverse_iterator& operator+=(difference_type i) |
| 10024 | { |
| 10025 | return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); |
| 10026 | } |
| 10027 | |
| 10028 | /// add to iterator |
| 10029 | json_reverse_iterator operator+(difference_type i) const |
| 10030 | { |
| 10031 | return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); |
| 10032 | } |
| 10033 | |
| 10034 | /// subtract from iterator |
| 10035 | json_reverse_iterator operator-(difference_type i) const |
| 10036 | { |
| 10037 | return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); |
| 10038 | } |
| 10039 |
nothing calls this directly
no test coverage detected