class iterator_adaptor_base

Declaration

template <
    typename DerivedT,
    typename WrappedIteratorT,
    typename IteratorCategoryT = typename std::iterator_traits<
        WrappedIteratorT>::iterator_category,
    typename T =
        typename std::iterator_traits<WrappedIteratorT>::value_type,
    typename DifferenceTypeT = typename std::iterator_traits<
        WrappedIteratorT>::difference_type,
    typename PointerT = typename std::conditional<
        std::is_same<T,
                     typename std::iterator_traits<
                         WrappedIteratorT>::value_type>::value,
        typename std::iterator_traits<WrappedIteratorT>::pointer,
        T*>::type,
    typename ReferenceT = typename std::conditional<
        std::is_same<T,
                     typename std::iterator_traits<
                         WrappedIteratorT>::value_type>::value,
        typename std::iterator_traits<WrappedIteratorT>::reference,
        T&>::type>
class iterator_adaptor_base { /* full declaration omitted */ };

Description

CRTP base class for adapting an iterator to a different type. This class can be used through CRTP to adapt one iterator into another. Typically this is done through providing in the derived class a custom \c operator* implementation. Other methods can be overridden as well.

Declared at: llvm/include/llvm/ADT/iterator.h:205

Templates

DerivedT
WrappedIteratorT
IteratorCategoryT = typename std::iterator_traits<WrappedIteratorT>::iterator_category
T = typename std::iterator_traits<WrappedIteratorT>::value_type
DifferenceTypeT = typename std::iterator_traits<WrappedIteratorT>::difference_type
PointerT = typename std::conditional<std::is_same<T, typename std::iterator_traits<WrappedIteratorT>::value_type>::value, typename std::iterator_traits<WrappedIteratorT>::pointer, T *>::type
ReferenceT = typename std::conditional<std::is_same<T, typename std::iterator_traits<WrappedIteratorT>::value_type>::value, typename std::iterator_traits<WrappedIteratorT>::reference, T &>::type

Member Variables

protected WrappedIteratorT I

Method Overview

Methods

iterator_adaptor_base<DerivedT,
                      WrappedIteratorT,
                      IteratorCategoryT,
                      T,
                      DifferenceTypeT,
                      PointerT,
                      ReferenceT>()

Declared at: llvm/include/llvm/ADT/iterator.h:213

iterator_adaptor_base<DerivedT,
                      WrappedIteratorT,
                      IteratorCategoryT,
                      T,
                      DifferenceTypeT,
                      PointerT,
                      ReferenceT>(
    WrappedIteratorT u)

Declared at: llvm/include/llvm/ADT/iterator.h:215

Parameters

WrappedIteratorT u

const WrappedIteratorT& wrapped() const

Declared at: llvm/include/llvm/ADT/iterator.h:220