MySQL 8.4.3
Source Code Documentation
|
Iterator utilities for working with intrusive pointers. More...
#include <assert.h>
Go to the source code of this file.
Classes | |
class | NextFunctionIterator< T, GetNextPointer > |
An iterator that follows a 'next' pointer with an accessor function. More... | |
class | IntrusiveListIterator< T, NextPointer > |
An iterator that follows the 'next' pointer in an intrusive list. More... | |
class | IteratorContainer< IteratorType > |
Adds a collection interface on top of an iterator. More... | |
Typedefs | |
template<typename T > | |
using | GetNextPointerFunction = T *(*)(const T *) |
template<typename T , GetNextPointerFunction< T > Fn> | |
using | NextFunctionContainer = IteratorContainer< NextFunctionIterator< T, Fn > > |
Convenience alias for instantiating a container directly from the accessor function. More... | |
template<typename T , T *T::* NextPointer> | |
using | IntrusiveListContainer = IteratorContainer< NextFunctionIterator< T, &GetMember< T, NextPointer > > > |
Functions | |
template<typename T , T *T::* Member> | |
T * | GetMember (const T *t) |
Helper template for the case when the 'next' member can be used directly, typically when it's public and the class definition is known. More... | |
Iterator utilities for working with intrusive pointers.
using GetNextPointerFunction = T *(*)(const T *) |
using IntrusiveListContainer = IteratorContainer<NextFunctionIterator<T, &GetMember<T, NextPointer> >> |
using NextFunctionContainer = IteratorContainer<NextFunctionIterator<T, Fn> > |
Convenience alias for instantiating a container directly from the accessor function.
T * GetMember | ( | const T * | t | ) |
Helper template for the case when the 'next' member can be used directly, typically when it's public and the class definition is known.