1#ifndef SQL_INTRUSIVE_LIST_ITERATOR_H_
2#define SQL_INTRUSIVE_LIST_ITERATOR_H_
55template <
typename T, T *(*GetNextPo
inter)(const T *)>
77 auto pre_increment(*
this);
89 return !((*this) == other);
100template <
typename T, T *T::*Member>
112template <
typename T, T *T::*NextPo
inter>
127template <
typename IteratorType>
134 IteratorType
end() {
return IteratorType(); }
147template <
typename T, GetNextPo
interFunction<T> Fn>
155template <
typename T, T *T::*NextPo
inter>
An iterator that follows the 'next' pointer in an intrusive list.
Definition: intrusive_list_iterator.h:114
IntrusiveListIterator(T *t)
Definition: intrusive_list_iterator.h:117
IntrusiveListIterator()=default
Adds a collection interface on top of an iterator.
Definition: intrusive_list_iterator.h:128
Type m_first
Definition: intrusive_list_iterator.h:137
IteratorContainer(Type first)
Definition: intrusive_list_iterator.h:131
IteratorType end()
Definition: intrusive_list_iterator.h:134
typename IteratorType::value_type Type
Definition: intrusive_list_iterator.h:130
IteratorType begin()
Definition: intrusive_list_iterator.h:133
An iterator that follows a 'next' pointer with an accessor function.
Definition: intrusive_list_iterator.h:56
bool operator!=(const NextFunctionIterator &other) const
Definition: intrusive_list_iterator.h:88
bool operator==(const NextFunctionIterator &other) const
Definition: intrusive_list_iterator.h:84
T * value_type
Definition: intrusive_list_iterator.h:58
T * m_current
Definition: intrusive_list_iterator.h:93
NextFunctionIterator operator++(int)
Definition: intrusive_list_iterator.h:76
NextFunctionIterator(T *start)
Constructs an iterator.
Definition: intrusive_list_iterator.h:65
NextFunctionIterator & operator++()
Definition: intrusive_list_iterator.h:70
T * operator*() const
Definition: intrusive_list_iterator.h:82
NextFunctionIterator()
Constructs a past-the-end iterator.
Definition: intrusive_list_iterator.h:68
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:176
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:101
T *(*)(const T *) GetNextPointerFunction
Definition: intrusive_list_iterator.h:141
uint16_t value_type
Definition: vt100.h:183