LLVM  3.7.0
Public Member Functions | List of all members
llvm::pointee_iterator< WrappedIteratorT, T > Struct Template Reference

An iterator type that allows iterating over the pointees via some other iterator. More...

#include <iterator.h>

Inheritance diagram for llvm::pointee_iterator< WrappedIteratorT, T >:
[legend]
Collaboration diagram for llvm::pointee_iterator< WrappedIteratorT, T >:
[legend]

Public Member Functions

 pointee_iterator ()=default
 
template<typename U >
 pointee_iterator (U &&u)
 
Toperator* () const
 
- Public Member Functions inherited from llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
pointee_iterator
< WrappedIteratorT > & 
operator+= (difference_type n)
 
pointee_iterator
< WrappedIteratorT > & 
operator-= (difference_type n)
 
difference_type operator- (const pointee_iterator< WrappedIteratorT > &RHS) const
 
pointee_iterator
< WrappedIteratorT > & 
operator++ ()
 
pointee_iterator
< WrappedIteratorT > & 
operator-- ()
 
bool operator== (const pointee_iterator< WrappedIteratorT > &RHS) const
 
bool operator< (const pointee_iterator< WrappedIteratorT > &RHS) const
 
Toperator* () const
 
- Public Member Functions inherited from llvm::iterator_facade_base< pointee_iterator< WrappedIteratorT >, std::iterator_traits< WrappedIteratorT >::iterator_category, T, typename std::iterator_traits< WrappedIteratorT >::difference_type, T *, T & >
pointee_iterator
< WrappedIteratorT > 
operator+ (typename std::iterator_traits< WrappedIteratorT >::difference_typen) const
 
pointee_iterator
< WrappedIteratorT > 
operator- (typename std::iterator_traits< WrappedIteratorT >::difference_typen) const
 
pointee_iterator
< WrappedIteratorT > & 
operator++ ()
 
pointee_iterator
< WrappedIteratorT > 
operator++ (int)
 
pointee_iterator
< WrappedIteratorT > & 
operator-- ()
 
pointee_iterator
< WrappedIteratorT > 
operator-- (int)
 
bool operator!= (const pointee_iterator< WrappedIteratorT > &RHS) const
 
bool operator> (const pointee_iterator< WrappedIteratorT > &RHS) const
 
bool operator<= (const pointee_iterator< WrappedIteratorT > &RHS) const
 
bool operator>= (const pointee_iterator< WrappedIteratorT > &RHS) const
 
Toperator-> () const
 
Toperator[] (typename std::iterator_traits< WrappedIteratorT >::difference_typen) const
 

Additional Inherited Members

- Public Types inherited from llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
typedef typename
std::iterator_traits
< WrappedIteratorT >
::difference_type 
difference_type
 
- Protected Types inherited from llvm::iterator_facade_base< pointee_iterator< WrappedIteratorT >, std::iterator_traits< WrappedIteratorT >::iterator_category, T, typename std::iterator_traits< WrappedIteratorT >::difference_type, T *, T & >
enum  
 
- Protected Member Functions inherited from llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
 iterator_adaptor_base ()=default
 
 iterator_adaptor_base (U &&u, typename std::enable_if< !std::is_base_of< typename std::remove_cv< typename std::remove_reference< U >::type >::type, pointee_iterator< WrappedIteratorT > >::value, int >::type=0)
 
const WrappedIteratorT & wrapped () const
 
- Protected Attributes inherited from llvm::iterator_adaptor_base< pointee_iterator< WrappedIteratorT >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
WrappedIteratorT I
 

Detailed Description

template<typename WrappedIteratorT, typename T = typename std::remove_reference< decltype(**std::declval<WrappedIteratorT>())>::type>
struct llvm::pointee_iterator< WrappedIteratorT, T >

An iterator type that allows iterating over the pointees via some other iterator.

The typical usage of this is to expose a type that iterates over Ts, but which is implemented with some iterator over T*s:

typedef pointee_iterator<SmallVectorImpl<T *>::iterator> iterator;

Definition at line 231 of file iterator.h.

Constructor & Destructor Documentation

template<typename WrappedIteratorT , typename T = typename std::remove_reference< decltype(**std::declval<WrappedIteratorT>())>::type>
llvm::pointee_iterator< WrappedIteratorT, T >::pointee_iterator ( )
default
template<typename WrappedIteratorT , typename T = typename std::remove_reference< decltype(**std::declval<WrappedIteratorT>())>::type>
template<typename U >
llvm::pointee_iterator< WrappedIteratorT, T >::pointee_iterator ( U &&  u)
inline

Definition at line 238 of file iterator.h.

Member Function Documentation

template<typename WrappedIteratorT , typename T = typename std::remove_reference< decltype(**std::declval<WrappedIteratorT>())>::type>
T& llvm::pointee_iterator< WrappedIteratorT, T >::operator* ( ) const
inline

The documentation for this struct was generated from the following file: