Skip to content

Commit fa44a60

Browse files
author
MarcoFalke
committed
refactor: Fix constness for prevector iterators
1 parent facaa66 commit fa44a60

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/prevector.h

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,15 @@ class prevector {
5858
iterator(T* ptr_) : ptr(ptr_) {}
5959
T& operator*() const { return *ptr; }
6060
T* operator->() const { return ptr; }
61-
T& operator[](size_type pos) { return ptr[pos]; }
62-
const T& operator[](size_type pos) const { return ptr[pos]; }
61+
T& operator[](size_type pos) const { return ptr[pos]; }
6362
iterator& operator++() { ptr++; return *this; }
6463
iterator& operator--() { ptr--; return *this; }
6564
iterator operator++(int) { iterator copy(*this); ++(*this); return copy; }
6665
iterator operator--(int) { iterator copy(*this); --(*this); return copy; }
6766
difference_type friend operator-(iterator a, iterator b) { return (&(*a) - &(*b)); }
68-
iterator operator+(size_type n) { return iterator(ptr + n); }
67+
iterator operator+(size_type n) const { return iterator(ptr + n); }
6968
iterator& operator+=(size_type n) { ptr += n; return *this; }
70-
iterator operator-(size_type n) { return iterator(ptr - n); }
69+
iterator operator-(size_type n) const { return iterator(ptr - n); }
7170
iterator& operator-=(size_type n) { ptr -= n; return *this; }
7271
bool operator==(iterator x) const { return ptr == x.ptr; }
7372
bool operator!=(iterator x) const { return ptr != x.ptr; }
@@ -87,10 +86,8 @@ class prevector {
8786
typedef std::bidirectional_iterator_tag iterator_category;
8887
reverse_iterator() = default;
8988
reverse_iterator(T* ptr_) : ptr(ptr_) {}
90-
T& operator*() { return *ptr; }
91-
const T& operator*() const { return *ptr; }
92-
T* operator->() { return ptr; }
93-
const T* operator->() const { return ptr; }
89+
T& operator*() const { return *ptr; }
90+
T* operator->() const { return ptr; }
9491
reverse_iterator& operator--() { ptr++; return *this; }
9592
reverse_iterator& operator++() { ptr--; return *this; }
9693
reverse_iterator operator++(int) { reverse_iterator copy(*this); ++(*this); return copy; }
@@ -118,9 +115,9 @@ class prevector {
118115
const_iterator operator++(int) { const_iterator copy(*this); ++(*this); return copy; }
119116
const_iterator operator--(int) { const_iterator copy(*this); --(*this); return copy; }
120117
difference_type friend operator-(const_iterator a, const_iterator b) { return (&(*a) - &(*b)); }
121-
const_iterator operator+(size_type n) { return const_iterator(ptr + n); }
118+
const_iterator operator+(size_type n) const { return const_iterator(ptr + n); }
122119
const_iterator& operator+=(size_type n) { ptr += n; return *this; }
123-
const_iterator operator-(size_type n) { return const_iterator(ptr - n); }
120+
const_iterator operator-(size_type n) const { return const_iterator(ptr - n); }
124121
const_iterator& operator-=(size_type n) { ptr -= n; return *this; }
125122
bool operator==(const_iterator x) const { return ptr == x.ptr; }
126123
bool operator!=(const_iterator x) const { return ptr != x.ptr; }

0 commit comments

Comments
 (0)