WPILibC++  2020.3.2-60-g3011ebe
wpi::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 wpi::pointee_iterator< WrappedIteratorT, T >:
wpi::iterator_adaptor_base< pointee_iterator< WrappedIteratorT, T >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T > wpi::iterator_facade_base< pointee_iterator< WrappedIteratorT, T >, std::iterator_traits< WrappedIteratorT >::iterator_category, T, typename std::iterator_traits< WrappedIteratorT >::difference_type, typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, T * >::type, typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, T & >::type >

Public Member Functions

template<typename U >
 pointee_iterator (U &&u)
 
T & operator* () const
 
- Public Member Functions inherited from wpi::iterator_adaptor_base< pointee_iterator< WrappedIteratorT, T >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
pointee_iterator< WrappedIteratorT, T > & operator+= (difference_type n)
 
pointee_iterator< WrappedIteratorT, T > & operator-= (difference_type n)
 
difference_type operator- (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
pointee_iterator< WrappedIteratorT, T > & operator++ ()
 
pointee_iterator< WrappedIteratorT, T > & operator-- ()
 
bool operator== (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
bool operator< (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, T & >::type operator* () const
 
- Public Member Functions inherited from wpi::iterator_facade_base< pointee_iterator< WrappedIteratorT, T >, std::iterator_traits< WrappedIteratorT >::iterator_category, T, typename std::iterator_traits< WrappedIteratorT >::difference_type, typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, T * >::type, typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, T & >::type >
pointee_iterator< WrappedIteratorT, T > operator+ (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const
 
pointee_iterator< WrappedIteratorT, T > operator- (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const
 
pointee_iterator< WrappedIteratorT, T > & operator++ ()
 
pointee_iterator< WrappedIteratorT, T > operator++ (int)
 
pointee_iterator< WrappedIteratorT, T > & operator-- ()
 
pointee_iterator< WrappedIteratorT, T > operator-- (int)
 
bool operator!= (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
bool operator> (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
bool operator<= (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
bool operator>= (const pointee_iterator< WrappedIteratorT, T > &RHS) const
 
typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, T * >::type operator-> ()
 
typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, T * >::type operator-> () const
 
ReferenceProxy operator[] (typename std::iterator_traits< WrappedIteratorT >::difference_type n)
 
ReferenceProxy operator[] (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const
 

Additional Inherited Members

- Public Types inherited from wpi::iterator_adaptor_base< pointee_iterator< WrappedIteratorT, T >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
using difference_type = typename std::iterator_traits< WrappedIteratorT >::difference_type
 
- Protected Types inherited from wpi::iterator_facade_base< pointee_iterator< WrappedIteratorT, T >, std::iterator_traits< WrappedIteratorT >::iterator_category, T, typename std::iterator_traits< WrappedIteratorT >::difference_type, typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, T * >::type, typename std::conditional< std::is_same< T, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, T & >::type >
enum  
 
- Protected Member Functions inherited from wpi::iterator_adaptor_base< pointee_iterator< WrappedIteratorT, T >, WrappedIteratorT, std::iterator_traits< WrappedIteratorT >::iterator_category, T >
 iterator_adaptor_base (WrappedIteratorT u)
 
const WrappedIteratorT & wrapped () const
 
- Protected Attributes inherited from wpi::iterator_adaptor_base< pointee_iterator< WrappedIteratorT, T >, 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>()>
struct wpi::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:

using iterator = pointee_iterator<SmallVectorImpl<T *>::iterator>;

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