A wrapper around an intrusive list with callbacks and non‐intrusive ownership.
Synopsis
Declared in <llvm/ADT/ilist.h>
template<
class IntrusiveListT,
class TraitsT>
class iplist_impl
: public TraitsT
Description
This wraps a purely intrusive list (like simple_ilist) with a configurable traits class. The traits can implement callbacks and customize the ownership semantics.
This is a subset of ilist functionality that can safely be used on nodes of polymorphic types, i.e. a heterogeneous list with a common base class that holds the next/prev pointers. The only state of the list itself is an ilist_sentinel, which holds pointers to the first and last nodes in the list.
Base Classes
Name |
Description |
|
Type Aliases
Name |
Description |
Const bidirectional iterator. |
|
Const pointer to a list element. |
|
Const reference to a list element. |
|
Const reverse bidirectional iterator. |
|
Signed distance between iterators. |
|
Mutable bidirectional iterator. |
|
Mutable pointer to a list element. |
|
Mutable reference to a list element. |
|
Mutable reverse bidirectional iterator. |
|
Unsigned size type for the list. |
|
Element type stored in the list. |
Member Functions
Name |
Description |
|
Construct an empty intrusive list wrapper. |
|
Copy construction is deleted; nodes have unique list membership. |
|
Move‐construct by transferring traits and node links from |
|
Destroy the list, erasing and deleting all owned nodes. |
|
Copy assignment is deleted; nodes have unique list membership. |
Move‐assign by transferring traits and node links from |
|
Erase and delete every node in the list. |
|
Remove all nodes from the list like clear(), but do not call removeNodeFromList() or deleteNode(). |
|
Clone another list. |
|
Remove the node at |
|
Erase and delete the node pointed to by |
|
Erase and delete the node referred to by |
|
Erase and delete every node in []`first,` |
|
Get the next node, or |
|
Get the next node, or |
|
Get the previous node, or |
|
Get the previous node, or |
|
Copy‐construct a node from |
|
Insert owned node |
|
Insert copies of []`first,` |
|
Insert |
|
Return the theoretical maximum number of elements. |
|
Merge sorted list |
|
Merge sorted list |
|
Erase and delete the last node. |
|
Erase and delete the first node. |
|
Insert |
|
Insert |
|
Unlink node pointed to by |
|
Unlink node referred to by |
|
Unlink the node at |
|
Unlink the node at const iterator |
|
Move all nodes from |
|
Move the single node at |
|
Move the single node |
|
Move the single node |
|
Move []`first,` |
|
Exchange contents with |
Using Declarations
Name |
Description |
Return a reference to the last element. |
|
Return an iterator to the first element. |
|
Return true if the list contains no elements. |
|
Return an iterator to the past‐the‐end sentinel. |
|
Return a reference to the first element. |
|
Return a reverse iterator to the last element. |
|
Return a reverse iterator to the past‐the‐rend sentinel. |
|
Return the number of elements (may be linear time). |
|
Sort the list using operator< or a provided comparator. |
Derived Classes
Name |
Description |
List that automatically updates parent links and symbol tables. |
|
An intrusive list with ownership and callbacks specified/controlled by ilist_traits, only with API safe for polymorphic types. |
Created with MrDocs