souffle  2.0.2-371-g6315b36
Public Member Functions | Data Fields
souffle::IterDerefWrapper< Iter, T > Struct Template Reference

A wrapper for an iterator obtaining pointers of a certain type, dereferencing values before forwarding them to the consumer. More...

#include <ContainerUtil.h>

Inheritance diagram for souffle::IterDerefWrapper< Iter, T >:
Inheritance graph
Collaboration diagram for souffle::IterDerefWrapper< Iter, T >:
Collaboration graph

Public Member Functions

 IterDerefWrapper ()=default
 
 IterDerefWrapper (const Iter &iter)
 
 IterDerefWrapper (const IterDerefWrapper &)=default
 
 IterDerefWrapper (IterDerefWrapper &&)=default
 
bool operator!= (const IterDerefWrapper &other) const
 
const T & operator* () const
 
IterDerefWrapperoperator++ ()
 
const T * operator-> () const
 
IterDerefWrapperoperator= (const IterDerefWrapper &)=default
 
IterDerefWrapperoperator= (IterDerefWrapper &&)=default
 
bool operator== (const IterDerefWrapper &other) const
 

Data Fields

Iter iter
 

Detailed Description

template<typename Iter, typename T = typename std::remove_pointer<typename Iter::value_type>::type>
struct souffle::IterDerefWrapper< Iter, T >

A wrapper for an iterator obtaining pointers of a certain type, dereferencing values before forwarding them to the consumer.

Template Parameters
Iter... the type of wrapped iterator
T... the value to be accessed by the resulting iterator

Definition at line 203 of file ContainerUtil.h.

Constructor & Destructor Documentation

◆ IterDerefWrapper() [1/4]

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
souffle::IterDerefWrapper< Iter, T >::IterDerefWrapper ( )
default

◆ IterDerefWrapper() [2/4]

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
souffle::IterDerefWrapper< Iter, T >::IterDerefWrapper ( const Iter &  iter)
inline

Definition at line 210 of file ContainerUtil.h.

215 {

References souffle::IterDerefWrapper< Iter, T >::iter.

◆ IterDerefWrapper() [3/4]

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
souffle::IterDerefWrapper< Iter, T >::IterDerefWrapper ( const IterDerefWrapper< Iter, T > &  )
default

◆ IterDerefWrapper() [4/4]

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
souffle::IterDerefWrapper< Iter, T >::IterDerefWrapper ( IterDerefWrapper< Iter, T > &&  )
default

Member Function Documentation

◆ operator!=()

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
bool souffle::IterDerefWrapper< Iter, T >::operator!= ( const IterDerefWrapper< Iter, T > &  other) const
inline

Definition at line 226 of file ContainerUtil.h.

230  {

◆ operator*()

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
const T& souffle::IterDerefWrapper< Iter, T >::operator* ( ) const
inline

Definition at line 231 of file ContainerUtil.h.

235  {

◆ operator++()

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
IterDerefWrapper& souffle::IterDerefWrapper< Iter, T >::operator++ ( )
inline

Definition at line 241 of file ContainerUtil.h.

246  {

◆ operator->()

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
const T* souffle::IterDerefWrapper< Iter, T >::operator-> ( ) const
inline

Definition at line 236 of file ContainerUtil.h.

246  {

◆ operator=() [1/2]

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
IterDerefWrapper& souffle::IterDerefWrapper< Iter, T >::operator= ( const IterDerefWrapper< Iter, T > &  )
default

◆ operator=() [2/2]

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
IterDerefWrapper& souffle::IterDerefWrapper< Iter, T >::operator= ( IterDerefWrapper< Iter, T > &&  )
default

◆ operator==()

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
bool souffle::IterDerefWrapper< Iter, T >::operator== ( const IterDerefWrapper< Iter, T > &  other) const
inline

Definition at line 221 of file ContainerUtil.h.

225  {

Field Documentation

◆ iter

template<typename Iter , typename T = typename std::remove_pointer<typename Iter::value_type>::type>
Iter souffle::IterDerefWrapper< Iter, T >::iter

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