Main Page   Namespace List   Class Hierarchy   Compound List   File List   Header Files   Namespace Members   Compound Members   File Members  

arg::bidirectional_iterator Class Reference

Proxy template class for wrapping bidirectional iterators. More...

#include <arg_iterator.h>

Class diagram for arg::bidirectional_iterator:

std::bidirectional_iterator_tag

List of all members.


Public Members

template<typename iterator>  bidirectional_iterator<iterator> (const iterator& it)
Construct a bidirectional_iterator proxy onto a container of value_type from any iterator (onto a container of value_type) that meets the forward iterator requirements.

value_type& operator * () const
value_type* operator-> () const
bidirectional_iterator& operator++ ()
bidirectional_iterator operator++ (int)
bidirectional_iterator& operator-- ()
bidirectional_iterator operator-- (int)
bool equals (const bidirectional_iterator& rhs) const
Used to implement equivalance operators.


Detailed Description

template<typename value_type> class arg::bidirectional_iterator

Proxy template class for wrapping bidirectional iterators.

These allow a class interface to be defined without either:

Note that MSVC5 has some serious problems compiling and using this class (see number of _MSC_VER == 1100 frigs in the test harness).

All methods support the strong exception safety guarantee with the proviso that the wrapped iterator must have a non-throwing destructor.

Author(s):
alan@octopull.co.uk

Member Function Documentation

template<typename value_type>
template<typename iterator>
arg::bidirectional_iterator<value_type>::bidirectional_iterator<value_type> (const iterator & it)

Construct a bidirectional_iterator proxy onto a container of value_type from any iterator (onto a container of value_type) that meets the forward iterator requirements.

template<typename value_type>
value_type & arg::bidirectional_iterator<value_type>::operator * () const [inline]

template<typename value_type>
value_type * arg::bidirectional_iterator<value_type>::operator-> () const [inline]

template<typename value_type>
bidirectional_iterator<value_type> & arg::bidirectional_iterator<value_type>::operator++ () [inline]

template<typename value_type>
bidirectional_iterator<value_type> arg::bidirectional_iterator<value_type>::operator++ (int) [inline]

template<typename value_type>
bidirectional_iterator<value_type> & arg::bidirectional_iterator<value_type>::operator-- () [inline]

template<typename value_type>
bidirectional_iterator<value_type> arg::bidirectional_iterator<value_type>::operator-- (int) [inline]

template<typename value_type>
bool arg::bidirectional_iterator<value_type>::equals (const bidirectional_iterator<value_type> & rhs) const [inline]

Used to implement equivalance operators.


The documentation for this class was generated from the following file:
Copyright 1999-2000 Alan Griffiths