libpsynth 0.2.1
Public Types | Public Member Functions | Protected Attributes | Friends
psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn > Class Template Reference

An adaptor over an existing iterator that changes the step unit. More...

#include <step_iterator.hpp>

Inheritance diagram for psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >:
Inheritance graph
[legend]
Collaboration diagram for psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
boost::iterator_adaptor
< Derived, Iterator,
boost::use_default,
boost::use_default,
boost::use_default, typename
SFn::difference_type > 
parent_type
typedef std::iterator_traits
< Iterator >::difference_type 
base_difference_type
typedef SFn::difference_type difference_type
typedef std::iterator_traits
< Iterator >::reference 
reference

Public Member Functions

 step_iterator_adaptor ()
 step_iterator_adaptor (const Iterator &it, SFn step_fn=SFn())
difference_type step () const

Protected Attributes

SFn _step_fn

Friends

class boost::iterator_core_access

Detailed Description

template<typename Derived, typename Iterator, typename SFn>
class psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >

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 SFn for advancing and for computing the distance between iterators.


Member Typedef Documentation

template<typename Derived, typename Iterator, typename SFn>
typedef std::iterator_traits<Iterator>::difference_type psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::base_difference_type
template<typename Derived, typename Iterator, typename SFn>
typedef SFn::difference_type psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::difference_type
template<typename Derived, typename Iterator, typename SFn>
typedef boost::iterator_adaptor<Derived, Iterator, boost::use_default, boost::use_default, boost::use_default, typename SFn::difference_type> psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::parent_type
template<typename Derived, typename Iterator, typename SFn>
typedef std::iterator_traits<Iterator>::reference psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::reference

Constructor & Destructor Documentation

template<typename Derived, typename Iterator, typename SFn>
psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::step_iterator_adaptor ( ) [inline]
template<typename Derived, typename Iterator, typename SFn>
psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::step_iterator_adaptor ( const Iterator &  it,
SFn  step_fn = SFn () 
) [inline]

Member Function Documentation

template<typename Derived, typename Iterator, typename SFn>
difference_type psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::step ( ) const [inline]

Friends And Related Function Documentation

template<typename Derived, typename Iterator, typename SFn>
friend class boost::iterator_core_access [friend]

Member Data Documentation

template<typename Derived, typename Iterator, typename SFn>
SFn psynth::sound::detail::step_iterator_adaptor< Derived, Iterator, SFn >::_step_fn [protected]

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