| 13670 | */ |
| 13671 | template<typename Base> |
| 13672 | class json_reverse_iterator : public std::reverse_iterator<Base> |
| 13673 | { |
| 13674 | public: |
| 13675 | using difference_type = std::ptrdiff_t; |
| 13676 | /// shortcut to the reverse iterator adapter |
| 13677 | using base_iterator = std::reverse_iterator<Base>; |
| 13678 | /// the reference type for the pointed-to element |
| 13679 | using reference = typename Base::reference; |
| 13680 | |
| 13681 | /// create reverse iterator from iterator |
| 13682 | explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept |
| 13683 | : base_iterator(it) {} |
| 13684 | |
| 13685 | /// create reverse iterator from base class |
| 13686 | explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} |
| 13687 | |
| 13688 | /// post-increment (it++) |
| 13689 | json_reverse_iterator operator++(int)& // NOLINT(cert-dcl21-cpp) |
| 13690 | { |
| 13691 | return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); |
| 13692 | } |
| 13693 | |
| 13694 | /// pre-increment (++it) |
| 13695 | json_reverse_iterator& operator++() |
| 13696 | { |
| 13697 | return static_cast<json_reverse_iterator&>(base_iterator::operator++()); |
| 13698 | } |
| 13699 | |
| 13700 | /// post-decrement (it--) |
| 13701 | json_reverse_iterator operator--(int)& // NOLINT(cert-dcl21-cpp) |
| 13702 | { |
| 13703 | return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); |
| 13704 | } |
| 13705 | |
| 13706 | /// pre-decrement (--it) |
| 13707 | json_reverse_iterator& operator--() |
| 13708 | { |
| 13709 | return static_cast<json_reverse_iterator&>(base_iterator::operator--()); |
| 13710 | } |
| 13711 | |
| 13712 | /// add to iterator |
| 13713 | json_reverse_iterator& operator+=(difference_type i) |
| 13714 | { |
| 13715 | return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); |
| 13716 | } |
| 13717 | |
| 13718 | /// add to iterator |
| 13719 | json_reverse_iterator operator+(difference_type i) const |
| 13720 | { |
| 13721 | return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); |
| 13722 | } |
| 13723 | |
| 13724 | /// subtract from iterator |
| 13725 | json_reverse_iterator operator-(difference_type i) const |
| 13726 | { |
| 13727 | return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); |
| 13728 | } |
| 13729 |
nothing calls this directly
no test coverage detected