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:
class const_iterator;
class iterator final
: public std::iterator<std::forward_iterator_tag, T> {
class iterator final {
friend IntrusiveList;
friend const_iterator;
......@@ -247,6 +245,12 @@ public:
:cursor(_cursor) {}
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;
constexpr bool operator==(const iterator &other) const noexcept {
......@@ -283,9 +287,7 @@ public:
return {&ToNode(t)};
}
class const_iterator final
: public std::iterator<std::forward_iterator_tag, const T> {
class const_iterator final {
friend IntrusiveList;
const IntrusiveListNode *cursor;
......@@ -294,6 +296,12 @@ public:
:cursor(_cursor) {}
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(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