#include <arg_iterator.h>
Class diagram for arg::bidirectional_iterator:
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. |
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.
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.