Static Value-Flow Analysis
Public Member Functions | List of all members
SVF::pointee_iter< WrappedIteratorT, T > Struct Template Reference

#include <iterator.h>

Inheritance diagram for SVF::pointee_iter< WrappedIteratorT, T >:
SVF::iter_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > SVF::iter_facade_base< DerivedT, typename std::iterator_traits< WrappedIteratorT >::iterator_category, typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::difference_type, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type * >, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, typename std::iterator_traits< WrappedIteratorT >::value_type & > >

Public Member Functions

 pointee_iter ()=default
 
template<typename U >
 pointee_iter (U &&u)
 
T & operator* () const
 
- Public Member Functions inherited from SVF::iter_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
DerivedT & operator+= (difference_type n)
 
DerivedT & operator-= (difference_type n)
 
difference_type operator- (const DerivedT &RHS) const
 
DerivedT & operator++ ()
 
DerivedT & operator-- ()
 
ReferenceT operator* () const
 
- Public Member Functions inherited from SVF::iter_facade_base< DerivedT, typename std::iterator_traits< WrappedIteratorT >::iterator_category, typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::difference_type, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type * >, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, typename std::iterator_traits< WrappedIteratorT >::value_type & > >
DerivedT operator+ (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const
 
DerivedT operator- (typename std::iterator_traits< WrappedIteratorT >::difference_type n) const
 
DerivedT & operator++ ()
 
DerivedT operator++ (int)
 
DerivedT & operator-- ()
 
DerivedT operator-- (int)
 
bool operator!= (const DerivedT &RHS) const
 
bool operator> (const DerivedT &RHS) const
 
bool operator<= (const DerivedT &RHS) const
 
bool operator>= (const DerivedT &RHS) const
 
std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type * > operator-> ()
 
std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_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 SVF::iter_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
using difference_type = DifferenceTypeT
 
- Public Types inherited from SVF::iter_facade_base< DerivedT, typename std::iterator_traits< WrappedIteratorT >::iterator_category, typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::difference_type, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type * >, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, typename std::iterator_traits< WrappedIteratorT >::value_type & > >
using iterator_category = typename std::iterator_traits< WrappedIteratorT >::iterator_category
 
using value_type = typename std::iterator_traits< WrappedIteratorT >::value_type
 
using difference_type = typename std::iterator_traits< WrappedIteratorT >::difference_type
 
using pointer = std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type * >
 
using reference = std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, typename std::iterator_traits< WrappedIteratorT >::value_type & >
 
- Protected Types inherited from SVF::iter_facade_base< DerivedT, typename std::iterator_traits< WrappedIteratorT >::iterator_category, typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::difference_type, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::pointer, typename std::iterator_traits< WrappedIteratorT >::value_type * >, std::conditional_t< std::is_same< typename std::iterator_traits< WrappedIteratorT >::value_type, typename std::iterator_traits< WrappedIteratorT >::value_type >::value, typename std::iterator_traits< WrappedIteratorT >::reference, typename std::iterator_traits< WrappedIteratorT >::value_type & > >
enum  
 
- Protected Member Functions inherited from SVF::iter_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
 iter_adaptor_base ()=default
 
 iter_adaptor_base (WrappedIteratorT u)
 
const WrappedIteratorT & wrapped () const
 
- Protected Attributes inherited from SVF::iter_adaptor_base< DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
WrappedIteratorT I
 

Detailed Description

template<typename WrappedIteratorT, typename T = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>>
struct SVF::pointee_iter< 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_iter<SmallVectorImpl<T *>::iterator>;

Definition at line 335 of file iterator.h.

Constructor & Destructor Documentation

◆ pointee_iter() [1/2]

template<typename WrappedIteratorT , typename T = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>>
SVF::pointee_iter< WrappedIteratorT, T >::pointee_iter ( )
default

◆ pointee_iter() [2/2]

template<typename WrappedIteratorT , typename T = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>>
template<typename U >
SVF::pointee_iter< WrappedIteratorT, T >::pointee_iter ( U &&  u)
inline

Definition at line 343 of file iterator.h.

344  : pointee_iter::iter_adaptor_base(std::forward<U &&>(u)) {}

Member Function Documentation

◆ operator*()

template<typename WrappedIteratorT , typename T = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>>
T& SVF::pointee_iter< WrappedIteratorT, T >::operator* ( void  ) const
inline

Definition at line 346 of file iterator.h.

347  {
348  return **this->I;
349  }
WrappedIteratorT I
Definition: iterator.h:242

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