| 13588 | */ |
| 13589 | template<typename Base> |
| 13590 | class json_reverse_iterator : public std::reverse_iterator<Base> |
| 13591 | { |
| 13592 | public: |
| 13593 | using difference_type = std::ptrdiff_t; |
| 13594 | /// shortcut to the reverse iterator adapter |
| 13595 | using base_iterator = std::reverse_iterator<Base>; |
| 13596 | /// the reference type for the pointed-to element |
| 13597 | using reference = typename Base::reference; |
| 13598 | |
| 13599 | /// create reverse iterator from iterator |
| 13600 | explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept |
| 13601 | : base_iterator(it) {} |
| 13602 | |
| 13603 | /// create reverse iterator from base class |
| 13604 | explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} |
| 13605 | |
| 13606 | /// post-increment (it++) |
| 13607 | json_reverse_iterator operator++(int)& // NOLINT(cert-dcl21-cpp) |
| 13608 | { |
| 13609 | return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); |
| 13610 | } |
| 13611 | |
| 13612 | /// pre-increment (++it) |
| 13613 | json_reverse_iterator& operator++() |
| 13614 | { |
| 13615 | return static_cast<json_reverse_iterator&>(base_iterator::operator++()); |
| 13616 | } |
| 13617 | |
| 13618 | /// post-decrement (it--) |
| 13619 | json_reverse_iterator operator--(int)& // NOLINT(cert-dcl21-cpp) |
| 13620 | { |
| 13621 | return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); |
| 13622 | } |
| 13623 | |
| 13624 | /// pre-decrement (--it) |
| 13625 | json_reverse_iterator& operator--() |
| 13626 | { |
| 13627 | return static_cast<json_reverse_iterator&>(base_iterator::operator--()); |
| 13628 | } |
| 13629 | |
| 13630 | /// add to iterator |
| 13631 | json_reverse_iterator& operator+=(difference_type i) |
| 13632 | { |
| 13633 | return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); |
| 13634 | } |
| 13635 | |
| 13636 | /// add to iterator |
| 13637 | json_reverse_iterator operator+(difference_type i) const |
| 13638 | { |
| 13639 | return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); |
| 13640 | } |
| 13641 | |
| 13642 | /// subtract from iterator |
| 13643 | json_reverse_iterator operator-(difference_type i) const |
| 13644 | { |
| 13645 | return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); |
| 13646 | } |
| 13647 |
nothing calls this directly
no test coverage detected