1#ifndef SQL_INTRUSIVE_LIST_ITERATOR_H_
2#define SQL_INTRUSIVE_LIST_ITERATOR_H_
56template <
typename T, T *(*GetNextPo
inter)(const T *)>
78 auto pre_increment(*
this);
90 return !((*this) == other);
101template <
typename T, T *T::*Member>
113template <
typename T, T *T::*NextPo
inter>
128template <
typename IteratorType>
135 IteratorType
end() {
return IteratorType(); }
148template <
typename T, GetNextPo
interFunction<T> Fn>
156template <
typename T, T *T::*NextPo
inter>
An iterator that follows the 'next' pointer in an intrusive list.
Definition: intrusive_list_iterator.h:115
IntrusiveListIterator(T *t)
Definition: intrusive_list_iterator.h:118
IntrusiveListIterator()=default
Adds a collection interface on top of an iterator.
Definition: intrusive_list_iterator.h:129
Type m_first
Definition: intrusive_list_iterator.h:138
IteratorContainer(Type first)
Definition: intrusive_list_iterator.h:132
IteratorType end()
Definition: intrusive_list_iterator.h:135
typename IteratorType::value_type Type
Definition: intrusive_list_iterator.h:131
IteratorType begin()
Definition: intrusive_list_iterator.h:134
An iterator that follows a 'next' pointer with an accessor function.
Definition: intrusive_list_iterator.h:57
bool operator!=(const NextFunctionIterator &other) const
Definition: intrusive_list_iterator.h:89
bool operator==(const NextFunctionIterator &other) const
Definition: intrusive_list_iterator.h:85
T * value_type
Definition: intrusive_list_iterator.h:59
T * m_current
Definition: intrusive_list_iterator.h:94
NextFunctionIterator operator++(int)
Definition: intrusive_list_iterator.h:77
NextFunctionIterator(T *start)
Constructs an iterator.
Definition: intrusive_list_iterator.h:66
NextFunctionIterator & operator++()
Definition: intrusive_list_iterator.h:71
T * operator*() const
Definition: intrusive_list_iterator.h:83
NextFunctionIterator()
Constructs a past-the-end iterator.
Definition: intrusive_list_iterator.h:69
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:177
T * GetMember(const T *t)
Helper template for the case when the 'next' member can be used directly, typically when it's public ...
Definition: intrusive_list_iterator.h:102
T *(*)(const T *) GetNextPointerFunction
Definition: intrusive_list_iterator.h:142
uint16_t value_type
Definition: vt100.h:184