Adobe Source Libraries 1.49.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
step_iterator_adaptor< DERIVED, IT, S_FN > Class Template Reference

step iterator adaptor More...

#include <iterator.hpp>

Inheritance diagram for step_iterator_adaptor< DERIVED, IT, S_FN >:

Public Types

typedef boost::iterator_adaptor< DERIVED, IT, boost::use_default, boost::use_default, boost::use_default, typename S_FN::difference_type > parent_type
typedef std::iterator_traits< IT >::difference_type base_difference_type
typedef S_FN::difference_type difference_type
typedef std::iterator_traits< IT >::reference reference

Public Member Functions

 step_iterator_adaptor ()
 step_iterator_adaptor (const IT &it, S_FN step_fn=S_FN())
difference_type step () const

Protected Attributes

S_FN _step_fn

Friends

class boost::iterator_core_access

Detailed Description

template<typename DERIVED, typename IT, typename S_FN>
class adobe::step_iterator_adaptor< DERIVED, IT, S_FN >

An adaptor over an existing iterator that changes the step unit (i.e. distance(it,it+1)) by a given predicate. Instead of calling base's operators ++, –, +=, -=, etc. the adaptor is using the passed policy object S_FN for advancing and for computing the distance between iterators.

Definition at line 318 of file iterator.hpp.

Member Typedef Documentation

◆ parent_type

template<typename DERIVED, typename IT, typename S_FN>
typedef boost::iterator_adaptor<DERIVED, IT, boost::use_default, boost::use_default, boost::use_default, typename S_FN::difference_type> parent_type

Definition at line 324 of file iterator.hpp.

◆ base_difference_type

template<typename DERIVED, typename IT, typename S_FN>
typedef std::iterator_traits<IT>::difference_type base_difference_type

Definition at line 325 of file iterator.hpp.

◆ difference_type

template<typename DERIVED, typename IT, typename S_FN>
typedef S_FN::difference_type difference_type

Definition at line 326 of file iterator.hpp.

◆ reference

template<typename DERIVED, typename IT, typename S_FN>
typedef std::iterator_traits<IT>::reference reference

Definition at line 327 of file iterator.hpp.

Constructor & Destructor Documentation

◆ step_iterator_adaptor() [1/2]

template<typename DERIVED, typename IT, typename S_FN>
step_iterator_adaptor ( )

Definition at line 329 of file iterator.hpp.

◆ step_iterator_adaptor() [2/2]

template<typename DERIVED, typename IT, typename S_FN>
step_iterator_adaptor ( const IT & it,
S_FN step_fn = S_FN() )

Definition at line 330 of file iterator.hpp.

Member Function Documentation

◆ step()

template<typename DERIVED, typename IT, typename S_FN>
difference_type step ( ) const

Definition at line 333 of file iterator.hpp.

◆ boost::iterator_core_access

template<typename DERIVED, typename IT, typename S_FN>
friend class boost::iterator_core_access
friend

Definition at line 339 of file iterator.hpp.

Member Data Documentation

◆ _step_fn

template<typename DERIVED, typename IT, typename S_FN>
S_FN _step_fn
protected

Definition at line 336 of file iterator.hpp.