Main Page | Modules | Namespace List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

tag::member_iterator_t< It, m > Struct Template Reference
[additional iterators]

#include <fn.h>

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

[legend]
List of all members.

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[] (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>
reference tag::member_iterator_t< It, m >::operator * void   )  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>
template<typename Other>
bool tag::member_iterator_t< It, m >::operator!= const Other &  other  )  const [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++  )  [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>
difference_type tag::member_iterator_t< It, m >::operator- const member_iterator_t< It, m > &  other  )  const [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>
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--  )  [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>
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>
member_iterator_t& tag::member_iterator_t< It, m >::operator= const Other &  other  )  [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>
template<typename Other>
bool tag::member_iterator_t< It, m >::operator== const Other &  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:
Generated on Wed Aug 8 14:30:36 2007 for TooN Algorithm Library - tag by  doxygen 1.3.9.1