Static Value-Flow Analysis
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SVF::iter_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy Class Reference

#include <iterator.h>

Public Member Functions

 operator ReferenceT () const
 

Private Member Functions

 ReferenceProxy (DerivedT I)
 

Private Attributes

friend iter_facade_base
 
DerivedT I
 

Detailed Description

template<typename DerivedT, typename IteratorCategoryT, typename T, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *, typename ReferenceT = T &>
class SVF::iter_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy

A proxy object for computing a reference via indirecting a copy of an iterator. This is used in APIs which need to produce a reference via indirection but for which the iterator object might be a temporary. The proxy preserves the iterator internally and exposes the indirected reference via a conversion operator.

Definition at line 90 of file iterator.h.

Constructor & Destructor Documentation

◆ ReferenceProxy()

template<typename DerivedT , typename IteratorCategoryT , typename T , typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *, typename ReferenceT = T &>
SVF::iter_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy::ReferenceProxy ( DerivedT  I)
inlineprivate

Definition at line 96 of file iterator.h.

96 : I(std::move(I)) {}
constexpr std::remove_reference< T >::type && move(T &&t) noexcept
Definition: SVFUtil.h:447

Member Function Documentation

◆ operator ReferenceT()

template<typename DerivedT , typename IteratorCategoryT , typename T , typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *, typename ReferenceT = T &>
SVF::iter_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy::operator ReferenceT ( ) const
inline

Definition at line 99 of file iterator.h.

100  {
101  return *I;
102  }

Member Data Documentation

◆ I

template<typename DerivedT , typename IteratorCategoryT , typename T , typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *, typename ReferenceT = T &>
DerivedT SVF::iter_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy::I
private

Definition at line 94 of file iterator.h.

◆ iter_facade_base

template<typename DerivedT , typename IteratorCategoryT , typename T , typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *, typename ReferenceT = T &>
friend SVF::iter_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >::ReferenceProxy::iter_facade_base
private

Definition at line 92 of file iterator.h.


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