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