Jlm
Public Types | Public Member Functions | Private Attributes | List of all members
jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc > Class Template Referencefinal

#include <IteratorWrapper.hpp>

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = T
 
using pointer = T *
 
using reference = T &
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

 IteratorWrapper (BaseIterator it)
 
IteratorWrapperoperator++ () noexcept
 
IteratorWrapper operator++ (int) noexcept
 
bool operator== (const IteratorWrapper &other) const noexcept
 
bool operator!= (const IteratorWrapper &other) const noexcept
 
reference operator* () const noexcept
 
pointer operator-> () const noexcept
 

Private Attributes

BaseIterator Iterator_
 

Detailed Description

template<typename T, typename BaseIterator, typename DereferenceFunc>
class jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >

Helper class for providing iterators over lists of wrapper types, like (smart)pointers and maps. To get a const interator, let T be a const type. This iterator should not be used if any element in the collection may be a null pointer.

Template Parameters
Tthe underlying type.
BaseIteratorthe type of the base iterator, can always be a const iterator.
DereferenceFunca Functor for converting a BaseIterator to a T&

Definition at line 79 of file IteratorWrapper.hpp.

Member Typedef Documentation

◆ difference_type

template<typename T , typename BaseIterator , typename DereferenceFunc >
using jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::difference_type = std::ptrdiff_t

Definition at line 82 of file IteratorWrapper.hpp.

◆ iterator_category

template<typename T , typename BaseIterator , typename DereferenceFunc >
using jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::iterator_category = std::forward_iterator_tag

Definition at line 86 of file IteratorWrapper.hpp.

◆ pointer

template<typename T , typename BaseIterator , typename DereferenceFunc >
using jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::pointer = T *

Definition at line 84 of file IteratorWrapper.hpp.

◆ reference

template<typename T , typename BaseIterator , typename DereferenceFunc >
using jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::reference = T &

Definition at line 85 of file IteratorWrapper.hpp.

◆ value_type

template<typename T , typename BaseIterator , typename DereferenceFunc >
using jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::value_type = T

Definition at line 83 of file IteratorWrapper.hpp.

Constructor & Destructor Documentation

◆ IteratorWrapper()

template<typename T , typename BaseIterator , typename DereferenceFunc >
jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::IteratorWrapper ( BaseIterator  it)
inlineexplicit

Definition at line 88 of file IteratorWrapper.hpp.

Member Function Documentation

◆ operator!=()

template<typename T , typename BaseIterator , typename DereferenceFunc >
bool jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::operator!= ( const IteratorWrapper< T, BaseIterator, DereferenceFunc > &  other) const
inlinenoexcept

Definition at line 114 of file IteratorWrapper.hpp.

◆ operator*()

template<typename T , typename BaseIterator , typename DereferenceFunc >
reference jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::operator* ( ) const
inlinenoexcept

Definition at line 120 of file IteratorWrapper.hpp.

◆ operator++() [1/2]

template<typename T , typename BaseIterator , typename DereferenceFunc >
IteratorWrapper& jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::operator++ ( )
inlinenoexcept

Definition at line 93 of file IteratorWrapper.hpp.

◆ operator++() [2/2]

template<typename T , typename BaseIterator , typename DereferenceFunc >
IteratorWrapper jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::operator++ ( int  )
inlinenoexcept

Definition at line 100 of file IteratorWrapper.hpp.

◆ operator->()

template<typename T , typename BaseIterator , typename DereferenceFunc >
pointer jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::operator-> ( ) const
inlinenoexcept

Definition at line 126 of file IteratorWrapper.hpp.

◆ operator==()

template<typename T , typename BaseIterator , typename DereferenceFunc >
bool jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::operator== ( const IteratorWrapper< T, BaseIterator, DereferenceFunc > &  other) const
inlinenoexcept

Definition at line 108 of file IteratorWrapper.hpp.

Member Data Documentation

◆ Iterator_

template<typename T , typename BaseIterator , typename DereferenceFunc >
BaseIterator jlm::util::IteratorWrapper< T, BaseIterator, DereferenceFunc >::Iterator_
private

Definition at line 132 of file IteratorWrapper.hpp.


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