LLVM: llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst (original) (raw)

Iterator for intrusive lists based on ilist_node. More...

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

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|
template<bool RHSIsConst>
std::enable_if_t< IsConst| !RHSIsConst, ilist_iterator_w_bits & >
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.
bool getHeadBit () const
bool getTailBit () const
void setHeadBit (bool SetBit) const
void setTailBit (bool SetBit) const

template<class OptionsT, bool IsReverse, bool IsConst>
class llvm::ilist_iterator_w_bits< OptionsT, IsReverse, IsConst >

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.

const_pointer

template<class OptionsT, bool IsReverse, bool IsConst>

const_reference

template<class OptionsT, bool IsReverse, bool IsConst>

difference_type

template<class OptionsT, bool IsReverse, bool IsConst>

iterator_category

template<class OptionsT, bool IsReverse, bool IsConst>

pointer

template<class OptionsT, bool IsReverse, bool IsConst>

reference

template<class OptionsT, bool IsReverse, bool IsConst>

value_type

template<class OptionsT, bool IsReverse, bool IsConst>

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator_w_bits() [2/6]

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator_w_bits() [3/6]

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator_w_bits() [4/6]

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator_w_bits() [5/6]

template<class OptionsT, bool IsReverse, bool IsConst>

template<bool RHSIsConst>

ilist_iterator_w_bits() [6/6]

template<class OptionsT, bool IsReverse, bool IsConst>

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.

getHeadBit()

template<class OptionsT, bool IsReverse, bool IsConst>

getNodePtr()

template<class OptionsT, bool IsReverse, bool IsConst>

getNonConst()

template<class OptionsT, bool IsReverse, bool IsConst>

getReverse()

template<class OptionsT, bool IsReverse, bool IsConst>

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.

getTailBit()

template<class OptionsT, bool IsReverse, bool IsConst>

isEnd()

template<class OptionsT, bool IsReverse, bool IsConst>

isValid()

template<class OptionsT, bool IsReverse, bool IsConst>

operator*()

template<class OptionsT, bool IsReverse, bool IsConst>

operator++() [1/2]

template<class OptionsT, bool IsReverse, bool IsConst>

operator++() [2/2]

template<class OptionsT, bool IsReverse, bool IsConst>

operator--() [1/2]

template<class OptionsT, bool IsReverse, bool IsConst>

operator--() [2/2]

template<class OptionsT, bool IsReverse, bool IsConst>

operator->()

template<class OptionsT, bool IsReverse, bool IsConst>

operator=()

template<class OptionsT, bool IsReverse, bool IsConst>

template<bool RHSIsConst>

setHeadBit()

template<class OptionsT, bool IsReverse, bool IsConst>

setTailBit()

template<class OptionsT, bool IsReverse, bool IsConst>

operator!=

template<class OptionsT, bool IsReverse, bool IsConst>

operator==

template<class OptionsT, bool IsReverse, bool IsConst>


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