|
LLVM 22.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.
|
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.
Referenced by llvm::ilist_iterator_w_bits< OptionsT, false, 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.
|
inline |
Definition at line 276 of file ilist_iterator.h.
|
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.