LLVM API Documentation
CRTP base class for adapting an iterator to a different type. More...
#include <iterator.h>
Public Types | |
typedef DifferenceTypeT | difference_type |
Public Member Functions | |
DerivedT & | operator+= (difference_type n) |
DerivedT & | operator-= (difference_type n) |
difference_type | operator- (const DerivedT &RHS) const |
DerivedT & | operator++ () |
DerivedT & | operator-- () |
bool | operator== (const DerivedT &RHS) const |
bool | operator< (const DerivedT &RHS) const |
ReferenceT | operator* () const |
Protected Member Functions | |
iterator_adaptor_base () | |
template<typename U > | |
iterator_adaptor_base (U &&u, typename std::enable_if< !std::is_base_of< typename std::remove_cv< typename std::remove_reference< U >::type >::type, DerivedT >::value, int >::type=0) | |
Protected Attributes | |
WrappedIteratorT | I |
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 operator*
implementation. Other methods can be overridden as well.
Definition at line 145 of file iterator.h.
typedef DifferenceTypeT llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::difference_type |
Definition at line 166 of file iterator.h.
llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::iterator_adaptor_base | ( | ) | [inline, protected] |
Definition at line 153 of file iterator.h.
llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::iterator_adaptor_base | ( | U && | u, |
typename std::enable_if< !std::is_base_of< typename std::remove_cv< typename std::remove_reference< U >::type >::type, DerivedT >::value, int >::type | = 0 |
||
) | [inline, explicit, protected] |
Definition at line 156 of file iterator.h.
ReferenceT llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator* | ( | ) | const [inline] |
Reimplemented in llvm::pointee_iterator< WrappedIteratorT, T >, llvm::LazyCallGraph::iterator, and llvm::User::value_op_iterator.
Definition at line 214 of file iterator.h.
DerivedT& llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator++ | ( | ) | [inline] |
Reimplemented from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >.
Reimplemented in llvm::LazyCallGraph::iterator.
Definition at line 193 of file iterator.h.
DerivedT& llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator+= | ( | difference_type | n | ) | [inline] |
Definition at line 168 of file iterator.h.
difference_type llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator- | ( | const DerivedT & | RHS | ) | const [inline] |
Definition at line 183 of file iterator.h.
DerivedT& llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator-- | ( | ) | [inline] |
Reimplemented from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >.
Definition at line 198 of file iterator.h.
DerivedT& llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator-= | ( | difference_type | n | ) | [inline] |
Definition at line 175 of file iterator.h.
bool llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator< | ( | const DerivedT & | RHS | ) | const [inline] |
Definition at line 207 of file iterator.h.
bool llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::operator== | ( | const DerivedT & | RHS | ) | const [inline] |
Definition at line 206 of file iterator.h.
WrappedIteratorT llvm::iterator_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT, WrappedTraitsT >::I [protected] |
Definition at line 151 of file iterator.h.
Referenced by llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator*(), llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator++(), llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator+=(), llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator-(), llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator--(), llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator-=(), llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator<(), and llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >::operator==().