| 12360 | */ |
| 12361 | template<typename Base> |
| 12362 | class json_reverse_iterator : public std::reverse_iterator<Base> |
| 12363 | { |
| 12364 | public: |
| 12365 | using difference_type = std::ptrdiff_t; |
| 12366 | /// shortcut to the reverse iterator adapter |
| 12367 | using base_iterator = std::reverse_iterator<Base>; |
| 12368 | /// the reference type for the pointed-to element |
| 12369 | using reference = typename Base::reference; |
| 12370 | |
| 12371 | /// create reverse iterator from iterator |
| 12372 | explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept |
| 12373 | : base_iterator(it) {} |
| 12374 | |
| 12375 | /// create reverse iterator from base class |
| 12376 | explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} |
| 12377 | |
| 12378 | /// post-increment (it++) |
| 12379 | json_reverse_iterator const operator++(int) // NOLINT(readability-const-return-type) |
| 12380 | { |
| 12381 | return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); |
| 12382 | } |
| 12383 | |
| 12384 | /// pre-increment (++it) |
| 12385 | json_reverse_iterator& operator++() |
| 12386 | { |
| 12387 | return static_cast<json_reverse_iterator&>(base_iterator::operator++()); |
| 12388 | } |
| 12389 | |
| 12390 | /// post-decrement (it--) |
| 12391 | json_reverse_iterator const operator--(int) // NOLINT(readability-const-return-type) |
| 12392 | { |
| 12393 | return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); |
| 12394 | } |
| 12395 | |
| 12396 | /// pre-decrement (--it) |
| 12397 | json_reverse_iterator& operator--() |
| 12398 | { |
| 12399 | return static_cast<json_reverse_iterator&>(base_iterator::operator--()); |
| 12400 | } |
| 12401 | |
| 12402 | /// add to iterator |
| 12403 | json_reverse_iterator& operator+=(difference_type i) |
| 12404 | { |
| 12405 | return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); |
| 12406 | } |
| 12407 | |
| 12408 | /// add to iterator |
| 12409 | json_reverse_iterator operator+(difference_type i) const |
| 12410 | { |
| 12411 | return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); |
| 12412 | } |
| 12413 | |
| 12414 | /// subtract from iterator |
| 12415 | json_reverse_iterator operator-(difference_type i) const |
| 12416 | { |
| 12417 | return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); |
| 12418 | } |
| 12419 |
nothing calls this directly
no test coverage detected