TooN Algorithm Library - tag  0.2
Public Types | Public Member Functions | Public Attributes | List of all members
tag::member_iterator_t< It, m > Struct Template Reference

#include <fn.h>

Collaboration diagram for tag::member_iterator_t< It, m >:
Collaboration graph

Public Types

typedef std::iterator_traits
< It >::value_type 
ParentValue
 
typedef std::iterator_traits
< It >::iterator_category 
iterator_category
 
typedef m value_type
 
typedef std::iterator_traits
< It >::difference_type 
difference_type
 
typedef
Internal::forward_const
< typename
std::iterator_traits< It >
::pointer, m * >::value_type 
pointer
 
typedef
Internal::forward_const
< typename
std::iterator_traits< It >
::reference, m & >::value_type 
reference
 

Public Member Functions

 member_iterator_t (m ParentValue::*d)
 
 member_iterator_t (const It &it, m ParentValue::*d)
 
template<typename Other >
member_iterator_toperator= (const Other &other)
 
member_iterator_toperator= (const member_iterator_t &other)
 
reference operator* (void) const
 
reference operator-> (void) const
 
reference operator* (void)
 
reference operator-> (void)
 
reference operator[] (difference_type n) const
 
member_iterator_toperator++ ()
 
member_iterator_t operator++ (int)
 
member_iterator_toperator-- ()
 
member_iterator_t operator-- (int)
 
member_iterator_toperator+= (difference_type n)
 
member_iterator_toperator-= (difference_type n)
 
template<typename Other >
difference_type operator- (const Other &other) const
 
difference_type operator- (const member_iterator_t &other) const
 
template<typename Other >
bool operator== (const Other &other) const
 
bool operator== (const member_iterator_t &other) const
 
template<typename Other >
bool operator!= (const Other &other) const
 
bool operator!= (const member_iterator_t &other) const
 

Public Attributes

It iterator
 
m ParentValue::* data
 

Detailed Description

template<typename It, typename m>
struct tag::member_iterator_t< It, m >

An iterator wrapper that returns a member of a struct the wrapped iterator would point to.

struct simple { int a; float b; };
vector<simple> test;
member_iterator_t<vector<simple>::iterator, int> ita( &simple::a );
ita = test.begin();
cout << *ita; // prints the value of a

Member Typedef Documentation

template<typename It, typename m>
typedef std::iterator_traits<It>::difference_type tag::member_iterator_t< It, m >::difference_type
template<typename It, typename m>
typedef std::iterator_traits<It>::iterator_category tag::member_iterator_t< It, m >::iterator_category
template<typename It, typename m>
typedef std::iterator_traits<It>::value_type tag::member_iterator_t< It, m >::ParentValue
template<typename It, typename m>
typedef Internal::forward_const<typename std::iterator_traits<It>::pointer, m *>::value_type tag::member_iterator_t< It, m >::pointer
template<typename It, typename m>
typedef Internal::forward_const<typename std::iterator_traits<It>::reference, m &>::value_type tag::member_iterator_t< It, m >::reference
template<typename It, typename m>
typedef m tag::member_iterator_t< It, m >::value_type

Constructor & Destructor Documentation

template<typename It, typename m>
tag::member_iterator_t< It, m >::member_iterator_t ( m ParentValue::*  d)
inline
template<typename It, typename m>
tag::member_iterator_t< It, m >::member_iterator_t ( const It &  it,
m ParentValue::*  d 
)
inline

Member Function Documentation

template<typename It, typename m>
template<typename Other >
bool tag::member_iterator_t< It, m >::operator!= ( const Other &  other) const
inline
template<typename It, typename m>
bool tag::member_iterator_t< It, m >::operator!= ( const member_iterator_t< It, m > &  other) const
inline
template<typename It, typename m>
reference tag::member_iterator_t< It, m >::operator* ( void  ) const
inline
template<typename It, typename m>
reference tag::member_iterator_t< It, m >::operator* ( void  )
inline
template<typename It, typename m>
member_iterator_t& tag::member_iterator_t< It, m >::operator++ ( )
inline
template<typename It, typename m>
member_iterator_t tag::member_iterator_t< It, m >::operator++ ( int  )
inline
template<typename It, typename m>
member_iterator_t& tag::member_iterator_t< It, m >::operator+= ( difference_type  n)
inline
template<typename It, typename m>
template<typename Other >
difference_type tag::member_iterator_t< It, m >::operator- ( const Other &  other) const
inline
template<typename It, typename m>
difference_type tag::member_iterator_t< It, m >::operator- ( const member_iterator_t< It, m > &  other) const
inline
template<typename It, typename m>
member_iterator_t& tag::member_iterator_t< It, m >::operator-- ( )
inline
template<typename It, typename m>
member_iterator_t tag::member_iterator_t< It, m >::operator-- ( int  )
inline
template<typename It, typename m>
member_iterator_t& tag::member_iterator_t< It, m >::operator-= ( difference_type  n)
inline
template<typename It, typename m>
reference tag::member_iterator_t< It, m >::operator-> ( void  ) const
inline
template<typename It, typename m>
reference tag::member_iterator_t< It, m >::operator-> ( void  )
inline
template<typename It, typename m>
template<typename Other >
member_iterator_t& tag::member_iterator_t< It, m >::operator= ( const Other &  other)
inline
template<typename It, typename m>
member_iterator_t& tag::member_iterator_t< It, m >::operator= ( const member_iterator_t< It, m > &  other)
inline
template<typename It, typename m>
template<typename Other >
bool tag::member_iterator_t< It, m >::operator== ( const Other &  other) const
inline
template<typename It, typename m>
bool tag::member_iterator_t< It, m >::operator== ( const member_iterator_t< It, m > &  other) const
inline
template<typename It, typename m>
reference tag::member_iterator_t< It, m >::operator[] ( difference_type  n) const
inline

Member Data Documentation

template<typename It, typename m>
m ParentValue::* tag::member_iterator_t< It, m >::data
template<typename It, typename m>
It tag::member_iterator_t< It, m >::iterator

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