Commit 1c97793b authored by Max Kellermann's avatar Max Kellermann Committed by Max Kellermann

util/IntrusiveList: do not use the deprecated class std::iterator

Deprecated in C++17. Since C++17, one is supposed to declare those 5 types manually.
parent 4dae8b41
...@@ -235,9 +235,7 @@ public: ...@@ -235,9 +235,7 @@ public:
class const_iterator; class const_iterator;
class iterator final class iterator final {
: public std::iterator<std::forward_iterator_tag, T> {
friend IntrusiveList; friend IntrusiveList;
friend const_iterator; friend const_iterator;
...@@ -247,6 +245,12 @@ public: ...@@ -247,6 +245,12 @@ public:
:cursor(_cursor) {} :cursor(_cursor) {}
public: public:
using iterator_category = std::forward_iterator_tag;
using value_type = T;
using difference_type = std::ptrdiff_t;
using pointer = value_type *;
using reference = value_type &;
iterator() noexcept = default; iterator() noexcept = default;
constexpr bool operator==(const iterator &other) const noexcept { constexpr bool operator==(const iterator &other) const noexcept {
...@@ -283,9 +287,7 @@ public: ...@@ -283,9 +287,7 @@ public:
return {&ToNode(t)}; return {&ToNode(t)};
} }
class const_iterator final class const_iterator final {
: public std::iterator<std::forward_iterator_tag, const T> {
friend IntrusiveList; friend IntrusiveList;
const IntrusiveListNode *cursor; const IntrusiveListNode *cursor;
...@@ -294,6 +296,12 @@ public: ...@@ -294,6 +296,12 @@ public:
:cursor(_cursor) {} :cursor(_cursor) {}
public: public:
using iterator_category = std::forward_iterator_tag;
using value_type = const T;
using difference_type = std::ptrdiff_t;
using pointer = value_type *;
using reference = value_type &;
const_iterator() noexcept = default; const_iterator() noexcept = default;
const_iterator(iterator src) noexcept const_iterator(iterator src) noexcept
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment