| 11440 | */ |
| 11441 | template<typename Base> |
| 11442 | class json_reverse_iterator : public std::reverse_iterator<Base> |
| 11443 | { |
| 11444 | public: |
| 11445 | using difference_type = std::ptrdiff_t; |
| 11446 | /// shortcut to the reverse iterator adapter |
| 11447 | using base_iterator = std::reverse_iterator<Base>; |
| 11448 | /// the reference type for the pointed-to element |
| 11449 | using reference = typename Base::reference; |
| 11450 | |
| 11451 | /// create reverse iterator from iterator |
| 11452 | explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept |
| 11453 | : base_iterator(it) {} |
| 11454 | |
| 11455 | /// create reverse iterator from base class |
| 11456 | explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} |
| 11457 | |
| 11458 | /// post-increment (it++) |
| 11459 | json_reverse_iterator const operator++(int) |
| 11460 | { |
| 11461 | return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); |
| 11462 | } |
| 11463 | |
| 11464 | /// pre-increment (++it) |
| 11465 | json_reverse_iterator& operator++() |
| 11466 | { |
| 11467 | return static_cast<json_reverse_iterator&>(base_iterator::operator++()); |
| 11468 | } |
| 11469 | |
| 11470 | /// post-decrement (it--) |
| 11471 | json_reverse_iterator const operator--(int) |
| 11472 | { |
| 11473 | return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); |
| 11474 | } |
| 11475 | |
| 11476 | /// pre-decrement (--it) |
| 11477 | json_reverse_iterator& operator--() |
| 11478 | { |
| 11479 | return static_cast<json_reverse_iterator&>(base_iterator::operator--()); |
| 11480 | } |
| 11481 | |
| 11482 | /// add to iterator |
| 11483 | json_reverse_iterator& operator+=(difference_type i) |
| 11484 | { |
| 11485 | return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); |
| 11486 | } |
| 11487 | |
| 11488 | /// add to iterator |
| 11489 | json_reverse_iterator operator+(difference_type i) const |
| 11490 | { |
| 11491 | return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); |
| 11492 | } |
| 11493 | |
| 11494 | /// subtract from iterator |
| 11495 | json_reverse_iterator operator-(difference_type i) const |
| 11496 | { |
| 11497 | return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); |
| 11498 | } |
| 11499 |
nothing calls this directly
no test coverage detected