Skip to content

Commit 5d3ca68

Browse files
[Warnings] Removed Deprecated STD Iterator From VTR Array View
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 9dd5ff6 commit 5d3ca68

File tree

1 file changed

+11
-17
lines changed

1 file changed

+11
-17
lines changed

libs/libvtrutil/src/vtr_array_view.h

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -207,21 +207,15 @@ class array_view_id : private array_view<V> {
207207
* to iterate through the keys with a range-based for loop
208208
*
209209
*/
210-
class key_iterator : public std::iterator<std::bidirectional_iterator_tag, key_type> {
210+
class key_iterator {
211211
public:
212-
/**
213-
* @brief Intermediate type my_iter
214-
*
215-
* We use the intermediate type my_iter to avoid a potential ambiguity for which
216-
* clang generates errors and warnings
217-
*/
218-
using my_iter = typename std::iterator<std::bidirectional_iterator_tag, K>;
219-
using typename my_iter::iterator;
220-
using typename my_iter::pointer;
221-
using typename my_iter::reference;
222-
using typename my_iter::value_type;
212+
using iterator_category = std::bidirectional_iterator_tag;
213+
using difference_type = std::ptrdiff_t;
214+
using value_type = key_type;
215+
using pointer = key_type*;
216+
using reference = key_type&;
223217

224-
key_iterator(key_iterator::value_type init)
218+
key_iterator(value_type init)
225219
: value_(init) {}
226220

227221
/**
@@ -233,13 +227,13 @@ class array_view_id : private array_view<V> {
233227
*/
234228

235229
///@brief increment the iterator
236-
key_iterator operator++() {
230+
key_iterator& operator++() {
237231
value_ = value_type(size_t(value_) + 1);
238232
return *this;
239233
}
240234

241235
///@brief decrement the iterator
242-
key_iterator operator--() {
236+
key_iterator& operator--() {
243237
value_ = value_type(size_t(value_) - 1);
244238
return *this;
245239
}
@@ -250,8 +244,8 @@ class array_view_id : private array_view<V> {
250244
///@brief -> operator
251245
pointer operator->() { return &value_; }
252246

253-
friend bool operator==(const key_iterator lhs, const key_iterator rhs) { return lhs.value_ == rhs.value_; }
254-
friend bool operator!=(const key_iterator lhs, const key_iterator rhs) { return !(lhs == rhs); }
247+
friend bool operator==(const key_iterator& lhs, const key_iterator& rhs) { return lhs.value_ == rhs.value_; }
248+
friend bool operator!=(const key_iterator& lhs, const key_iterator& rhs) { return !(lhs == rhs); }
255249

256250
private:
257251
value_type value_;

0 commit comments

Comments
 (0)