|
The Pedigree Project 0.1
|
#include <IntrusiveList.h>
Collaboration diagram for IntrusiveList< T, Member >:Classes | |
| class | IteratorType |
Public Types | |
| using | Iterator = IteratorType< T, &node_t::next, &node_t::previous > |
| using | ConstIterator = IteratorType< const T, &node_t::next, &node_t::previous > |
| using | ReverseIterator = IteratorType< T, &node_t::previous, &node_t::next > |
| using | ConstReverseIterator = IteratorType< const T, &node_t::previous, &node_t::next > |
Public Member Functions | |
| IntrusiveList (const IntrusiveList &)=delete | |
| IntrusiveList & | operator= (const IntrusiveList &)=delete |
| size_t | size () const |
| size_t | count () const |
| bool | empty () const |
| bool | contains (const T &value) const |
| void | pushBack (T &value) |
| void | pushFront (T &value) |
| T * | popBack () |
| T * | popFront () |
| bool | unlink (T &value) |
| Iterator | erase (Iterator &iterator) |
| ReverseIterator | erase (ReverseIterator &iterator) |
| Iterator | begin () |
| ConstIterator | begin () const |
| Iterator | end () |
| ConstIterator | end () const |
| ReverseIterator | rbegin () |
| ConstReverseIterator | rbegin () const |
| ReverseIterator | rend () |
| ConstReverseIterator | rend () const |
| void | clear () |
Private Types | |
| using | node_t = IntrusiveListNode< T > |
Private Member Functions | |
| void | insertBefore (node_t &position, T &value) |
| T * | remove (node_t &node) |
Private Attributes | |
| size_t | m_Count |
| node_t | m_Empty |
Allocation-free doubly-linked list.
Elements remain owned by the caller, must stay at a stable address, and must outlive their membership in the list. The selected node member belongs exclusively to one list while linked. A type can participate in multiple lists by providing a distinct node member for each list.
Definition at line 54 of file IntrusiveList.h.
| using IntrusiveList< T, Member >::ConstIterator = IteratorType<const T, &node_t::next, &node_t::previous> |
Definition at line 118 of file IntrusiveList.h.
| using IntrusiveList< T, Member >::ConstReverseIterator = IteratorType<const T, &node_t::previous, &node_t::next> |
Definition at line 120 of file IntrusiveList.h.
| using IntrusiveList< T, Member >::Iterator = IteratorType<T, &node_t::next, &node_t::previous> |
Definition at line 117 of file IntrusiveList.h.
|
private |
Definition at line 57 of file IntrusiveList.h.
| using IntrusiveList< T, Member >::ReverseIterator = IteratorType<T, &node_t::previous, &node_t::next> |
Definition at line 119 of file IntrusiveList.h.
|
inline |
Definition at line 122 of file IntrusiveList.h.
|
inline |
Definition at line 130 of file IntrusiveList.h.
|
inline |
Definition at line 203 of file IntrusiveList.h.
|
inline |
Definition at line 207 of file IntrusiveList.h.
|
inline |
Definition at line 235 of file IntrusiveList.h.
|
inline |
Returns true when value is linked into this list.
Definition at line 147 of file IntrusiveList.h.
|
inline |
Definition at line 138 of file IntrusiveList.h.
|
inline |
Definition at line 142 of file IntrusiveList.h.
|
inline |
Definition at line 211 of file IntrusiveList.h.
|
inline |
Definition at line 215 of file IntrusiveList.h.
|
inline |
Definition at line 183 of file IntrusiveList.h.
|
inline |
Definition at line 193 of file IntrusiveList.h.
|
inlineprivate |
Definition at line 241 of file IntrusiveList.h.
|
inline |
Definition at line 160 of file IntrusiveList.h.
|
inline |
Definition at line 167 of file IntrusiveList.h.
|
inline |
Definition at line 152 of file IntrusiveList.h.
|
inline |
Definition at line 156 of file IntrusiveList.h.
|
inline |
Definition at line 219 of file IntrusiveList.h.
|
inline |
Definition at line 223 of file IntrusiveList.h.
|
inlineprivate |
Definition at line 254 of file IntrusiveList.h.
|
inline |
Definition at line 227 of file IntrusiveList.h.
|
inline |
Definition at line 231 of file IntrusiveList.h.
|
inline |
Definition at line 134 of file IntrusiveList.h.
|
inline |
Removes value from this list in constant time.
Definition at line 175 of file IntrusiveList.h.
|
private |
Definition at line 271 of file IntrusiveList.h.
|
private |
Definition at line 272 of file IntrusiveList.h.