DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Private Types | Private Member Functions | Friends
DGtal::ReverseIterator< Iterator > Class Template Reference

#include <ReverseIterator.h>

Public Types

typedef
IteratorCirculatorTraits
< Iterator >::Type 
Type

Public Member Functions

 ReverseIterator ()
 ReverseIterator (Iterator x)
template<class OtherIterator >
 ReverseIterator (ReverseIterator< OtherIterator > const &r, typename boost::enable_if_convertible< OtherIterator, Iterator >::type *=0)

Private Types

typedef
boost::iterator_adaptor
< ReverseIterator< Iterator >
, Iterator > 
super_t

Private Member Functions

super_t::reference dereference () const
void increment ()
void decrement ()
void advance (typename super_t::difference_type n)
template<class OtherIterator >
super_t::difference_type distance_to (ReverseIterator< OtherIterator > const &y) const

Friends

class boost::iterator_core_access

Detailed Description

template<class Iterator>
class DGtal::ReverseIterator< Iterator >

This class adapts any bidirectional iterator so that operator++ calls operator– and vice versa.

Description of template class 'ReverseIterator'

Template Parameters:
TIteratorthe type of the iterator to adapt, a model of bidirectional iterator

NB: adapted from boost/iterator/ReverseIterator.hpp

Definition at line 68 of file ReverseIterator.h.


Member Typedef Documentation

template<class Iterator>
typedef boost::iterator_adaptor< ReverseIterator<Iterator>, Iterator > DGtal::ReverseIterator< Iterator >::super_t
private

Definition at line 72 of file ReverseIterator.h.

template<class Iterator>
typedef IteratorCirculatorTraits<Iterator>::Type DGtal::ReverseIterator< Iterator >::Type

Definition at line 78 of file ReverseIterator.h.


Constructor & Destructor Documentation

template<class Iterator>
DGtal::ReverseIterator< Iterator >::ReverseIterator ( )
inline

Definition at line 80 of file ReverseIterator.h.

{}
template<class Iterator>
DGtal::ReverseIterator< Iterator >::ReverseIterator ( Iterator  x)
inlineexplicit

Definition at line 82 of file ReverseIterator.h.

: super_t(x) {}
template<class Iterator>
template<class OtherIterator >
DGtal::ReverseIterator< Iterator >::ReverseIterator ( ReverseIterator< OtherIterator > const &  r,
typename boost::enable_if_convertible< OtherIterator, Iterator >::type *  = 0 
)
inline

Definition at line 86 of file ReverseIterator.h.

: super_t(r.base())
{}

Member Function Documentation

template<class Iterator>
void DGtal::ReverseIterator< Iterator >::advance ( typename super_t::difference_type  n)
inlineprivate

Definition at line 99 of file ReverseIterator.h.

{
this->base_reference() += -n;
}
template<class Iterator>
void DGtal::ReverseIterator< Iterator >::decrement ( )
inlineprivate

Definition at line 97 of file ReverseIterator.h.

{ ++this->base_reference(); }
template<class Iterator>
super_t::reference DGtal::ReverseIterator< Iterator >::dereference ( ) const
inlineprivate

Definition at line 94 of file ReverseIterator.h.

{ return *boost::prior(this->base()); }
template<class Iterator>
template<class OtherIterator >
super_t::difference_type DGtal::ReverseIterator< Iterator >::distance_to ( ReverseIterator< OtherIterator > const &  y) const
inlineprivate

Definition at line 106 of file ReverseIterator.h.

{
return this->base_reference() - y.base();
}
template<class Iterator>
void DGtal::ReverseIterator< Iterator >::increment ( )
inlineprivate

Definition at line 96 of file ReverseIterator.h.

{ --this->base_reference(); }

Friends And Related Function Documentation

template<class Iterator>
friend class boost::iterator_core_access
friend

Definition at line 74 of file ReverseIterator.h.


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