class ilist_iterator

Declaration

template <class OptionsT, bool IsReverse, bool IsConst>
class ilist_iterator { /* full declaration omitted */ };

Description

Iterator for intrusive lists based on ilist_node.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:57

Templates

OptionsT
bool IsReverse
bool IsConst

Method Overview

Methods

llvm::ilist_iterator::node_pointer getNodePtr()
    const

Description

Get the underlying ilist_node.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:173

ilist_iterator<OptionsT, IsReverse, false>
getNonConst() const

Description

Const-cast.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:129

ilist_iterator<OptionsT, !IsReverse, IsConst>
getReverse() const

Description

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.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:122

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

Description

Create from an ilist_node.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:82

Parameters

llvm::ilist_iterator::node_reference N

ilist_iterator<OptionsT, IsReverse, IsConst>(
    llvm::ilist_iterator::pointer NP)

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:84

Parameters

llvm::ilist_iterator::pointer NP

ilist_iterator<OptionsT, IsReverse, IsConst>(
    llvm::ilist_iterator::reference NR)

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:85

Parameters

llvm::ilist_iterator::reference NR

ilist_iterator<OptionsT, IsReverse, IsConst>()

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:86

ilist_iterator<OptionsT, IsReverse, IsConst>(
    const ilist_iterator<OptionsT,
                         !IsReverse,
                         IsConst>& RHS)

Description

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.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:113

Parameters

const ilist_iterator<OptionsT, !IsReverse, IsConst>& RHS

template <bool RHSIsConst>
ilist_iterator<OptionsT, IsReverse, IsConst>(
    const ilist_iterator<OptionsT,
                         IsReverse,
                         RHSIsConst>& RHS,
    typename std::enable_if<
        IsConst || !RHSIsConst,
        void*>::type = nullptr)

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:91

Templates

bool RHSIsConst

Parameters

const ilist_iterator<OptionsT, IsReverse, RHSIsConst>& RHS
typename std::enable_if<IsConst || !RHSIsConst, void*>::type = nullptr

bool isEnd() const

Description

Check for end. Only valid if ilist_sentinel_tracking <true >.

Declared at: llvm/include/llvm/ADT/ilist_iterator.h:176