| 80 | |
| 81 | template <class T> |
| 82 | class QueueConstIterator |
| 83 | { |
| 84 | public: |
| 85 | using value_type = T; |
| 86 | using reference = T const&; |
| 87 | using pointer = T const*; |
| 88 | using difference_type = int32_t; |
| 89 | using size_type = uint32_t; |
| 90 | using iterator_category = std::random_access_iterator_tag; |
| 91 | |
| 92 | QueueConstIterator(Queue<T> const& q, int32_t i) : queue_(q), index_(i) {} |
| 93 | |
| 94 | QueueConstIterator operator ++ () |
| 95 | { |
| 96 | QueueConstIterator<T> it(queue_, index_); |
| 97 | index_++; |
| 98 | return it; |
| 99 | } |
| 100 | |
| 101 | QueueConstIterator& operator ++ (int) |
| 102 | { |
| 103 | index_++; |
| 104 | return *this; |
| 105 | } |
| 106 | |
| 107 | bool operator == (QueueConstIterator const& it) const |
| 108 | { |
| 109 | return it.index_ == index_; |
| 110 | } |
| 111 | |
| 112 | bool operator != (QueueConstIterator const& it) const |
| 113 | { |
| 114 | return it.index_ != index_; |
| 115 | } |
| 116 | |
| 117 | QueueConstIterator operator + (difference_type n) const |
| 118 | { |
| 119 | return QueueConstIterator(queue_, index_ + n); |
| 120 | } |
| 121 | |
| 122 | QueueConstIterator operator - (difference_type n) const |
| 123 | { |
| 124 | return QueueConstIterator(queue_, index_ - n); |
| 125 | } |
| 126 | |
| 127 | difference_type operator - (QueueConstIterator const& o) const |
| 128 | { |
| 129 | return (difference_type)(index_ - o.index_); |
| 130 | } |
| 131 | |
| 132 | T const& operator * () const |
| 133 | { |
| 134 | return queue_[index_]; |
| 135 | } |
| 136 | |
| 137 | T const* operator -> () const |
| 138 | { |
| 139 | return &queue_[index_]; |
no outgoing calls
no test coverage detected