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
- protected iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT>()
- protected iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT>(WrappedIteratorT u)
- protected const WrappedIteratorT & wrapped() const
Methods
¶iterator_adaptor_base<DerivedT,
WrappedIteratorT,
IteratorCategoryT,
T,
DifferenceTypeT,
PointerT,
ReferenceT>()
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)
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
const WrappedIteratorT& wrapped() const
Declared at: llvm/include/llvm/ADT/iterator.h:220