LLVM: llvm::iplist_impl< IntrusiveListT, TraitsT > Class Template Reference (original) (raw)

A wrapper around an intrusive list with callbacks and non-intrusive ownership. More...

#include "[llvm/ADT/ilist.h](ilist%5F8h%5Fsource.html)"

Public Types
using pointer = typename base_list_type::pointer
using const_pointer = typename base_list_type::const_pointer
using reference = typename base_list_type::reference
using const_reference = typename base_list_type::const_reference
using value_type = typename base_list_type::value_type
using size_type = typename base_list_type::size_type
using difference_type = typename base_list_type::difference_type
using iterator = typename base_list_type::iterator
using const_iterator = typename base_list_type::const_iterator
using reverse_iterator = typename base_list_type::reverse_iterator
using const_reverse_iterator
Public Member Functions
iplist_impl ()=default
iplist_impl (const iplist_impl &)=delete
iplist_impl & operator= (const iplist_impl &)=delete
iplist_impl (iplist_impl &&X)
iplist_impl & operator= (iplist_impl &&X)
~iplist_impl ()
size_type max_size () const
void swap (iplist_impl &RHS)
iterator insert (iterator where, pointer New)
iterator insert (iterator where, const_reference New)
iterator insertAfter (iterator where, pointer New)
template
void cloneFrom (const iplist_impl &L2, Cloner clone)
Clone another list.
pointer remove (iterator &IT)
pointer remove (const iterator &IT)
pointer remove (pointer IT)
pointer remove (reference IT)
iterator erase (iterator where)
iterator erase (pointer IT)
iterator erase (reference IT)
void clearAndLeakNodesUnsafely ()
Remove all nodes from the list like clear(), but do not call removeNodeFromList() or deleteNode().
iterator erase (iterator first, iterator last)
void clear ()
void push_front (pointer val)
void push_back (pointer val)
void pop_front ()
void pop_back ()
template
void insert (iterator where, InIt first, InIt last)
void splice (iterator where, iplist_impl &L2)
void splice (iterator where, iplist_impl &L2, iterator first)
void splice (iterator where, iplist_impl &L2, iterator first, iterator last)
void splice (iterator where, iplist_impl &L2, reference N)
void splice (iterator where, iplist_impl &L2, pointer N)
template
void merge (iplist_impl &Right, Compare comp)
void merge (iplist_impl &Right)
pointer getPrevNode (reference N) const
Get the previous node, or nullptr for the list head.
const_pointer getPrevNode (const_reference N) const
Get the previous node, or nullptr for the list head.
pointer getNextNode (reference N) const
Get the next node, or nullptr for the list tail.
const_pointer getNextNode (const_reference N) const
Get the next node, or nullptr for the list tail.

template<class IntrusiveListT, class TraitsT>
class llvm::iplist_impl< IntrusiveListT, TraitsT >

A wrapper around an intrusive list with callbacks and non-intrusive ownership.

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.

Definition at line 110 of file ilist.h.

const_iterator

const_pointer

const_reference

const_reverse_iterator

Initial value:

typename base_list_type::const_reverse_iterator

Definition at line 124 of file ilist.h.

difference_type

iterator

pointer

reverse_iterator

size_type

value_type

iplist_impl() [1/3]

Referenced by cloneFrom(), iplist_impl(), iplist_impl(), merge(), merge(), operator=(), operator=(), splice(), splice(), splice(), splice(), splice(), and swap().

iplist_impl() [2/3]

References iplist_impl().

iplist_impl() [3/3]

~iplist_impl()

clear()

clearAndLeakNodesUnsafely()

Remove all nodes from the list like clear(), but do not call removeNodeFromList() or deleteNode().

This should only be used immediately before freeing nodes in bulk to avoid traversing the list and bringing all the nodes into cache.

Definition at line 217 of file ilist.h.

cloneFrom()

erase() [1/4]

erase() [2/4]

erase() [3/4]

erase() [4/4]

getNextNode() [1/2]

Get the next node, or nullptr for the list tail.

Definition at line 316 of file ilist.h.

References getNextNode(), and N.

getNextNode() [2/2]

getPrevNode() [1/2]

Get the previous node, or nullptr for the list head.

Definition at line 304 of file ilist.h.

References getPrevNode(), and N.

getPrevNode() [2/2]

Get the previous node, or nullptr for the list head.

Definition at line 297 of file ilist.h.

References I, and N.

Referenced by getPrevNode().

insert() [1/3]

insert() [2/3]

insert() [3/3]

insertAfter()

max_size()

merge() [1/2]

merge() [2/2]

operator=() [1/2]

References iplist_impl().

operator=() [2/2]

pop_back()

pop_front()

push_back()

push_front()

remove() [1/4]

remove() [2/4]

remove() [3/4]

remove() [4/4]

splice() [1/5]

splice() [2/5]

splice() [3/5]

splice() [4/5]

splice() [5/5]

swap()


The documentation for this class was generated from the following file: