MCPcopy Create free account
hub / github.com/Norbyte/bg3se / QueueIterator

Class QueueIterator

CoreLib/Base/Queue.h:10–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8
9template <class T>
10class QueueIterator
11{
12public:
13 using value_type = T;
14 using reference = T&;
15 using pointer = T*;
16 using difference_type = int32_t;
17 using size_type = uint32_t;
18 using iterator_category = std::random_access_iterator_tag;
19
20 QueueIterator(Queue<T>& q, int32_t i) : queue_(q), index_(i) {}
21
22 QueueIterator operator ++ ()
23 {
24 QueueIterator<T> it(queue_, index_);
25 index_++;
26 return it;
27 }
28
29 QueueIterator& operator ++ (int)
30 {
31 index_++;
32 return *this;
33 }
34
35 bool operator == (QueueIterator const& it) const
36 {
37 return it.index_ == index_;
38 }
39
40 bool operator != (QueueIterator const& it) const
41 {
42 return it.index_ != index_;
43 }
44
45 QueueIterator operator + (difference_type n) const
46 {
47 return QueueIterator(queue_, index_ + n);
48 }
49
50 QueueIterator operator - (difference_type n) const
51 {
52 return QueueIterator(queue_, index_ - n);
53 }
54
55 difference_type operator - (QueueIterator const& o) const
56 {
57 return (difference_type)(index_ - o.index_);
58 }
59
60 T& operator * () const
61 {
62 return queue_[index_];
63 }
64
65 T* operator -> () const
66 {
67 return &queue_[index_];

Callers 2

operator +Method · 0.85
operator -Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected