Doubly linked list of objects derived from TIntrusiveNode. More...
#include <intrusive_list.hpp>
Classes | |
| class | TIterator |
Public Member Functions | |
| TIntrusiveList (const TIntrusiveList &)=delete | |
| TIntrusiveList & | operator= (const TIntrusiveList &)=delete |
| bool | Empty () const |
| T & | Front () |
| The first object. The list must not be empty. | |
| void | PushFront (T &item) |
| void | PushBack (T &item) |
| TIterator | begin () |
| TIterator | end () |
Static Public Member Functions | |
| static void | Erase (T &item) |
| Removes an object from the list it is in, in O(1). | |
Doubly linked list of objects derived from TIntrusiveNode.
The list does not own its objects: it only links them, without allocating. It is circular around a sentinel node, so linking and unlinking do not branch. The sentinel points to itself, so the list can be neither copied nor moved. Objects must be unlinked before they are destroyed.