Skip to content

Commit f6e132b

Browse files
[Warnings] Removed Deprecated STD Iterator From VTR Vector
This also remove a strange alias used called "my_iter" which, according to the comment, was used to avoid potential ambiguity in the Clang compiler. I am not sure what this means, but I think it should be less ambiguous when we no longer inheret from std::iterator.
1 parent dacb8fd commit f6e132b

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

libs/libvtrutil/src/vtr_vector.h

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -160,17 +160,16 @@ class vector : private std::vector<V, Allocator> {
160160
* This allows end-users to call the parent class's keys() member
161161
* to iterate through the keys with a range-based for loop
162162
*/
163-
class key_iterator : public std::iterator<std::bidirectional_iterator_tag, key_type> {
163+
class key_iterator {
164164
public:
165-
///@brief We use the intermediate type my_iter to avoid a potential ambiguity for which clang generates errors and warnings
166-
using my_iter = typename std::iterator<std::bidirectional_iterator_tag, K>;
167-
using typename my_iter::iterator;
168-
using typename my_iter::pointer;
169-
using typename my_iter::reference;
170-
using typename my_iter::value_type;
165+
using iterator_category = std::bidirectional_iterator_tag;
166+
using difference_type = std::ptrdiff_t;
167+
using value_type = key_type;
168+
using pointer = key_type*;
169+
using reference = key_type&;
171170

172171
///@brief constructor
173-
key_iterator(key_iterator::value_type init)
172+
key_iterator(value_type init)
174173
: value_(init) {}
175174

176175
/*
@@ -180,12 +179,12 @@ class vector : private std::vector<V, Allocator> {
180179
* we can just increment the underlying Id to build the next key.
181180
*/
182181
///@brief ++ operator
183-
key_iterator operator++() {
182+
key_iterator& operator++() {
184183
value_ = value_type(size_t(value_) + 1);
185184
return *this;
186185
}
187186
///@brief decrement operator
188-
key_iterator operator--() {
187+
key_iterator& operator--() {
189188
value_ = value_type(size_t(value_) - 1);
190189
return *this;
191190
}
@@ -195,9 +194,9 @@ class vector : private std::vector<V, Allocator> {
195194
pointer operator->() { return &value_; }
196195

197196
///@brief == operator
198-
friend bool operator==(const key_iterator lhs, const key_iterator rhs) { return lhs.value_ == rhs.value_; }
197+
friend bool operator==(const key_iterator& lhs, const key_iterator& rhs) { return lhs.value_ == rhs.value_; }
199198
///@brief != operator
200-
friend bool operator!=(const key_iterator lhs, const key_iterator rhs) { return !(lhs == rhs); }
199+
friend bool operator!=(const key_iterator& lhs, const key_iterator& rhs) { return !(lhs == rhs); }
201200

202201
private:
203202
value_type value_;

0 commit comments

Comments
 (0)