LLVM 20.0.0git
|
Iterator for intrusive lists based on ilist_node. More...
#include "llvm/ADT/ilist_iterator.h"
Public Types | |
using | value_type = typename Traits::value_type |
using | pointer = typename Traits::pointer |
using | reference = typename Traits::reference |
using | difference_type = ptrdiff_t |
using | iterator_category = std::bidirectional_iterator_tag |
using | const_pointer = typename OptionsT::const_pointer |
using | const_reference = typename OptionsT::const_reference |
Public Member Functions | |
ilist_iterator (node_reference N) | |
Create from an ilist_node. | |
ilist_iterator (pointer NP) | |
ilist_iterator (reference NR) | |
ilist_iterator ()=default | |
template<bool RHSIsConst> | |
ilist_iterator (const ilist_iterator< OptionsT, IsReverse, RHSIsConst > &RHS, std::enable_if_t< IsConst||!RHSIsConst, void * >=nullptr) | |
template<bool RHSIsConst> | |
std::enable_if_t< IsConst||!RHSIsConst, ilist_iterator & > | operator= (const ilist_iterator< OptionsT, IsReverse, RHSIsConst > &RHS) |
ilist_iterator (const ilist_iterator< OptionsT, !IsReverse, IsConst > &RHS) | |
Explicit conversion between forward/reverse iterators. | |
ilist_iterator< OptionsT, !IsReverse, IsConst > | getReverse () const |
Get a reverse iterator to the same node. | |
ilist_iterator< OptionsT, IsReverse, false > | getNonConst () const |
Const-cast. | |
reference | operator* () const |
pointer | operator-> () const |
ilist_iterator & | operator-- () |
ilist_iterator & | operator++ () |
ilist_iterator | operator-- (int) |
ilist_iterator | operator++ (int) |
bool | isValid () const |
node_pointer | getNodePtr () const |
Get the underlying ilist_node. | |
bool | isEnd () const |
Check for end. Only valid if ilist_sentinel_tracking<true>. | |
Friends | |
bool | operator== (const ilist_iterator &LHS, const ilist_iterator &RHS) |
bool | operator!= (const ilist_iterator &LHS, const ilist_iterator &RHS) |
Iterator for intrusive lists based on ilist_node.
Definition at line 81 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_pointer = typename OptionsT::const_pointer |
Definition at line 101 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_reference = typename OptionsT::const_reference |
Definition at line 102 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::difference_type = ptrdiff_t |
Definition at line 99 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::iterator_category = std::bidirectional_iterator_tag |
Definition at line 100 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::pointer = typename Traits::pointer |
Definition at line 97 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::reference = typename Traits::reference |
Definition at line 98 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::value_type = typename Traits::value_type |
Definition at line 96 of file ilist_iterator.h.
|
inlineexplicit |
Create from an ilist_node.
Definition at line 112 of file ilist_iterator.h.
|
inlineexplicit |
Definition at line 114 of file ilist_iterator.h.
|
inlineexplicit |
Definition at line 115 of file ilist_iterator.h.
|
default |
|
inline |
Definition at line 121 of file ilist_iterator.h.
|
inlineexplicit |
Explicit conversion between forward/reverse iterators.
Translate between forward and reverse iterators without changing range boundaries. The resulting iterator will dereference (and have a handle) to the previous node, which is somewhat unexpected; but converting the two endpoints in a range will give the same range in reverse.
This matches std::reverse_iterator conversions.
Definition at line 142 of file ilist_iterator.h.
|
inline |
Get the underlying ilist_node.
Definition at line 204 of file ilist_iterator.h.
|
inline |
Const-cast.
Definition at line 158 of file ilist_iterator.h.
|
inline |
Get a reverse iterator to the same node.
Gives a reverse iterator that will dereference (and have a handle) to the same node. Converting the endpoint iterators in a range will give a different range; for range operations, use the explicit conversions.
Definition at line 151 of file ilist_iterator.h.
|
inline |
Check for end. Only valid if ilist_sentinel_tracking<true>.
Definition at line 207 of file ilist_iterator.h.
|
inline |
Definition at line 201 of file ilist_iterator.h.
|
inline |
Definition at line 167 of file ilist_iterator.h.
References assert(), and llvm::ilist_detail::SpecificNodeAccess< OptionsT >::getValuePtr().
Referenced by llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator->().
|
inline |
Definition at line 186 of file ilist_iterator.h.
|
inline |
Definition at line 195 of file ilist_iterator.h.
|
inline |
Definition at line 182 of file ilist_iterator.h.
|
inline |
Definition at line 190 of file ilist_iterator.h.
|
inline |
Definition at line 171 of file ilist_iterator.h.
References llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator*().
|
inline |
Definition at line 129 of file ilist_iterator.h.
References RHS.
|
friend |
Definition at line 177 of file ilist_iterator.h.
|
friend |
Definition at line 174 of file ilist_iterator.h.