| 11512 | */ |
| 11513 | template<typename Base> |
| 11514 | class json_reverse_iterator : public std::reverse_iterator<Base> |
| 11515 | { |
| 11516 | public: |
| 11517 | using difference_type = std::ptrdiff_t; |
| 11518 | /// shortcut to the reverse iterator adapter |
| 11519 | using base_iterator = std::reverse_iterator<Base>; |
| 11520 | /// the reference type for the pointed-to element |
| 11521 | using reference = typename Base::reference; |
| 11522 | |
| 11523 | /// create reverse iterator from iterator |
| 11524 | explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept |
| 11525 | : base_iterator(it) {} |
| 11526 | |
| 11527 | /// create reverse iterator from base class |
| 11528 | explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} |
| 11529 | |
| 11530 | /// post-increment (it++) |
| 11531 | json_reverse_iterator const operator++(int) |
| 11532 | { |
| 11533 | return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); |
| 11534 | } |
| 11535 | |
| 11536 | /// pre-increment (++it) |
| 11537 | json_reverse_iterator& operator++() |
| 11538 | { |
| 11539 | return static_cast<json_reverse_iterator&>(base_iterator::operator++()); |
| 11540 | } |
| 11541 | |
| 11542 | /// post-decrement (it--) |
| 11543 | json_reverse_iterator const operator--(int) |
| 11544 | { |
| 11545 | return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); |
| 11546 | } |
| 11547 | |
| 11548 | /// pre-decrement (--it) |
| 11549 | json_reverse_iterator& operator--() |
| 11550 | { |
| 11551 | return static_cast<json_reverse_iterator&>(base_iterator::operator--()); |
| 11552 | } |
| 11553 | |
| 11554 | /// add to iterator |
| 11555 | json_reverse_iterator& operator+=(difference_type i) |
| 11556 | { |
| 11557 | return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); |
| 11558 | } |
| 11559 | |
| 11560 | /// add to iterator |
| 11561 | json_reverse_iterator operator+(difference_type i) const |
| 11562 | { |
| 11563 | return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); |
| 11564 | } |
| 11565 | |
| 11566 | /// subtract from iterator |
| 11567 | json_reverse_iterator operator-(difference_type i) const |
| 11568 | { |
| 11569 | return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); |
| 11570 | } |
| 11571 |
nothing calls this directly
no test coverage detected