include/xlist: define iterator without std::iterator<>

std::iterator<> is deprecated in C++17, so let's just
define the required traits directly.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
This commit is contained in:
Kefu Chai 2022-03-02 00:14:09 +08:00
parent c1039df602
commit 77a3ed56a7

View File

@ -159,10 +159,15 @@ public:
remove(_back);
}
class iterator: std::iterator<std::forward_iterator_tag, T> {
class iterator {
private:
item *cur;
public:
using iterator_category = std::forward_iterator_tag;
using value_type = T;
using difference_type = std::ptrdiff_t;
using pointer = T*;
using reference = T&;
iterator(item *i = 0) : cur(i) {}
T operator*() { return static_cast<T>(cur->_item); }
iterator& operator++() {