LLVM: llvm::ilist_iterator< 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 (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|
template<bool RHSIsConst>
std::enable_if_t< IsConst| !RHSIsConst, ilist_iterator & >
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.

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

Iterator for intrusive lists based on ilist_node.

Definition at line 81 of file ilist_iterator.h.

const_pointer

template<class OptionsT, bool IsReverse, bool IsConst>

using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_pointer = typename OptionsT::const_pointer

const_reference

template<class OptionsT, bool IsReverse, bool IsConst>

using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_reference = typename OptionsT::const_reference

difference_type

template<class OptionsT, bool IsReverse, bool IsConst>

iterator_category

template<class OptionsT, bool IsReverse, bool IsConst>

using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::iterator_category = std::bidirectional_iterator_tag

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>

using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::value_type = typename Traits::value_type

template<class OptionsT, bool IsReverse, bool IsConst>

llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( node_reference N) inlineexplicit

ilist_iterator() [2/6]

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator() [3/6]

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator() [4/6]

template<class OptionsT, bool IsReverse, bool IsConst>

ilist_iterator() [5/6]

template<class OptionsT, bool IsReverse, bool IsConst>

template<bool RHSIsConst>

ilist_iterator() [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 142 of file ilist_iterator.h.

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 151 of file ilist_iterator.h.

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>

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: