Cypress  1.0
C++ Spiking Neural Network Simulation Framework
Public Member Functions | List of all members
cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const > Class Template Reference

#include <network_mixins.hpp>

Inheritance diagram for cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >:
Inheritance graph
[legend]
Collaboration diagram for cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >:
Collaboration graph
[legend]

Public Member Functions

 iterator_ (ImplPtr impl, NeuronIndex idx)
 
 operator iterator_< Dir, true > () const
 
bool operator== (const Self &o) const
 
bool operator!= (const Self &o) const
 
bool operator< (const Self &o) const
 
bool operator> (const Self &o) const
 
bool operator<= (const Self &o) const
 
bool operator>= (const Self &o) const
 
Self operator+ (NeuronIndex b)
 
Self operator- (NeuronIndex b)
 
NeuronIndex operator- (const Self &o) const
 
Selfoperator++ ()
 
Self operator++ (int)
 
Selfoperator-- ()
 
Self operator-- (int)
 
Selfoperator+= (NeuronIndex n)
 
Selfoperator-= (NeuronIndex n)
 
template<typename U = Value, typename = typename std::enable_if<!Const, U>::type>
Value operator* ()
 
template<typename U = Value, typename = typename std::enable_if<!Const, U>::type>
Value operator-> ()
 
template<typename U = Value, typename = typename std::enable_if<!Const, U>::type>
Value operator[] (NeuronIndex n)
 
Value operator* () const
 
Value operator-> () const
 
Value operator[] (NeuronIndex n) const
 

Detailed Description

template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
class cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >

Generic class implementing the various iterator types exposed by the Population class. Note that comparison operators only compare the neuron index and do not check for equivalence of the population object. Comparing iterators from different population objects is nonsense.

Template Parameters
Diris the direction into which the iterator advances.
Constif true, the iterator allows no write access to the underlying population. If false, the corresponding access operators are enabled.

Constructor & Destructor Documentation

template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::iterator_ ( ImplPtr  impl,
NeuronIndex  idx 
)
inline

Constructor, creates an iterator pointing at the neuron with the index idx in the given population.

Parameters
implis a pointer at the underlying class.
idxis the index of the neuron.

Member Function Documentation

template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator iterator_< Dir, true > ( ) const
inline

Allow implicit conversion to const-iterators.

template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
bool cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator!= ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
template<typename U = Value, typename = typename std::enable_if<!Const, U>::type>
Value cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator* ( )
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Value cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator* ( ) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator+ ( NeuronIndex  b)
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self& cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator++ ( )
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator++ ( int  )
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self& cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator+= ( NeuronIndex  n)
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator- ( NeuronIndex  b)
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
NeuronIndex cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator- ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self& cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator-- ( )
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator-- ( int  )
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Self& cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator-= ( NeuronIndex  n)
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
template<typename U = Value, typename = typename std::enable_if<!Const, U>::type>
Value cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator-> ( )
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Value cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator-> ( ) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
bool cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator< ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
bool cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator<= ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
bool cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator== ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
bool cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator> ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
bool cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator>= ( const Self o) const
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
template<typename U = Value, typename = typename std::enable_if<!Const, U>::type>
Value cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator[] ( NeuronIndex  n)
inline
template<typename Impl, typename Value, typename Accessor>
template<int Dir, bool Const>
Value cypress::IterableMixin< Impl, Value, Accessor >::iterator_< Dir, Const >::operator[] ( NeuronIndex  n) const
inline

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