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_w_bits (node_reference N) | |
Create from an ilist_node. | |
ilist_iterator_w_bits (pointer NP) | |
ilist_iterator_w_bits (reference NR) | |
ilist_iterator_w_bits ()=default | |
template<bool RHSIsConst> | |
ilist_iterator_w_bits (const ilist_iterator_w_bits< OptionsT, IsReverse, RHSIsConst > &RHS, std::enable_if_t< IsConst||!RHSIsConst, void * >=nullptr) | |
template<bool RHSIsConst> | |
std::enable_if_t< IsConst||!RHSIsConst, ilist_iterator_w_bits & > | operator= (const ilist_iterator_w_bits< OptionsT, IsReverse, RHSIsConst > &RHS) |
ilist_iterator_w_bits (const ilist_iterator_w_bits< OptionsT, !IsReverse, IsConst > &RHS) | |
Explicit conversion between forward/reverse iterators. | |
ilist_iterator_w_bits< OptionsT, !IsReverse, IsConst > | getReverse () const |
Get a reverse iterator to the same node. | |
ilist_iterator_w_bits< OptionsT, IsReverse, false > | getNonConst () const |
Const-cast. | |
reference | operator* () const |
pointer | operator-> () const |
ilist_iterator_w_bits & | operator-- () |
ilist_iterator_w_bits & | operator++ () |
ilist_iterator_w_bits | operator-- (int) |
ilist_iterator_w_bits | 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>. | |
bool | getHeadBit () const |
bool | getTailBit () const |
void | setHeadBit (bool SetBit) const |
void | setTailBit (bool SetBit) const |
Friends | |
bool | operator== (const ilist_iterator_w_bits &LHS, const ilist_iterator_w_bits &RHS) |
bool | operator!= (const ilist_iterator_w_bits &LHS, const ilist_iterator_w_bits &RHS) |
Iterator for intrusive lists based on ilist_node.
Much like ilist_iterator, but with the addition of two bits recording whether this position (when in a range) is half or fully open.
Definition at line 214 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::const_pointer = typename OptionsT::const_pointer |
Definition at line 235 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::const_reference = typename OptionsT::const_reference |
Definition at line 236 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::difference_type = ptrdiff_t |
Definition at line 233 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::iterator_category = std::bidirectional_iterator_tag |
Definition at line 234 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::pointer = typename Traits::pointer |
Definition at line 231 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::reference = typename Traits::reference |
Definition at line 232 of file ilist_iterator.h.
using llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::value_type = typename Traits::value_type |
Definition at line 230 of file ilist_iterator.h.
|
inlineexplicit |
Create from an ilist_node.
Definition at line 253 of file ilist_iterator.h.
|
inlineexplicit |
Definition at line 255 of file ilist_iterator.h.
|
inlineexplicit |
Definition at line 257 of file ilist_iterator.h.
|
default |
|
inline |
Definition at line 264 of file ilist_iterator.h.
References RHS.
|
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 291 of file ilist_iterator.h.
|
inline |
Definition at line 369 of file ilist_iterator.h.
|
inline |
Get the underlying ilist_node.
Definition at line 364 of file ilist_iterator.h.
|
inline |
Const-cast.
Definition at line 307 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 300 of file ilist_iterator.h.
|
inline |
Definition at line 370 of file ilist_iterator.h.
|
inline |
Check for end. Only valid if ilist_sentinel_tracking<true>.
Definition at line 367 of file ilist_iterator.h.
|
inline |
Definition at line 361 of file ilist_iterator.h.
|
inline |
Definition at line 321 of file ilist_iterator.h.
References assert(), and llvm::ilist_detail::SpecificNodeAccess< OptionsT >::getValuePtr().
Referenced by llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::operator->().
|
inline |
Definition at line 344 of file ilist_iterator.h.
|
inline |
Definition at line 355 of file ilist_iterator.h.
|
inline |
Definition at line 338 of file ilist_iterator.h.
|
inline |
Definition at line 350 of file ilist_iterator.h.
|
inline |
Definition at line 325 of file ilist_iterator.h.
References llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >::operator*().
|
inline |
Definition at line 276 of file ilist_iterator.h.
References RHS.
|
inline |
Definition at line 371 of file ilist_iterator.h.
|
inline |
Definition at line 372 of file ilist_iterator.h.
|
friend |
Definition at line 332 of file ilist_iterator.h.
|
friend |
Definition at line 328 of file ilist_iterator.h.