IndirectIterator2< _Iterator > Class Template Reference

An iterator that performs three dereferences in operator*(). More...

#include <IndirectIterator.h>

Inheritance diagram for IndirectIterator2< _Iterator >:
AdaptedIterator< _Iterator, std::iterator_traits< _Iterator >::iterator_category, std::iterator_traits< std::iterator_traits< std::iterator_traits< _Iterator >::value_type >::value_type >::value_type, std::iterator_traits< _Iterator >::difference_type, std::iterator_traits< std::iterator_traits< std::iterator_traits< _Iterator >::value_type >::value_type >::pointer, std::iterator_traits< std::iterator_traits< std::iterator_traits< _Iterator >::value_type >::value_type >::reference > iterator

List of all members.

Public Types

typedef Base::Iterator Iterator
 The base iterator type.
typedef Base::iterator_category iterator_category
 The iterator category.
typedef Base::value_type value_type
 The type "pointed to" by the iterator.
typedef Base::difference_type difference_type
 Distance between iterators is represented as this type.
typedef Base::pointer pointer
 This type represents a pointer-to-value_type.
typedef Base::reference reference
 This type represents a reference-to-value_type.

Public Member Functions

Constructors etc.

 IndirectIterator2 ()
 Default constructor.
 IndirectIterator2 (const IndirectIterator2 &x)
 Copy constructor.
IndirectIterator2operator= (const IndirectIterator2 &other)
 Assignment operator.
 IndirectIterator2 (const Iterator &i)
 Construct from an iterator.
IndirectIterator2operator= (const Iterator &other)
 Assignment from an iterator.
Accessors.

const Iteratorbase () const
 Return the base iterator.
Iterator Functionality.

reference operator* () const
 Triple dereference of the base iterator.
pointer operator-> () const
 Double dereference of the base iterator.
IndirectIterator2operator++ ()
 Pre-increment.
IndirectIterator2 operator++ (int)
 Post-increment. Warning: This is not as efficient as the pre-increment.
IndirectIterator2operator-- ()
 Pre-decrement.
IndirectIterator2 operator-- (int)
 Post-decrement. Warning: This is not as efficient as the pre-decrement.
value_type operator[] (const difference_type &n) const
 Sub-scripting.
IndirectIterator2operator+= (const difference_type &n)
 Addition assignment.
IndirectIterator2 operator+ (const difference_type &n) const
 Addition.
IndirectIterator2operator-= (const difference_type &n)
 Subtraction assignment.
IndirectIterator2 operator- (const difference_type &n) const
 Subtraction.

Related Functions

(Note that these are not member functions.)



template<typename _Iterator >
IndirectIterator2< _Iterator > operator+ (typename IndirectIterator2< _Iterator >::difference_type n, const IndirectIterator2< _Iterator > &x)
 Offset from an iterator.
template<typename _Iterator >
IndirectIterator2< _Iterator > constructIndirectIterator2 ()
 Convenience function for instantiating a IndirectIterator2.
template<typename _Iterator >
IndirectIterator2< _Iterator > constructIndirectIterator2 (const _Iterator &i)
 Convenience function for instantiating a IndirectIterator2.

Detailed Description

template<typename _Iterator>
class IndirectIterator2< _Iterator >

An iterator that performs three dereferences in operator*().

This is a triple-dereferencing iterator. This is useful when you have an array of pointers to pointers to widgets that you would like to treat as an array of widgets.


The documentation for this class was generated from the following file:
Generated on Thu Jun 30 02:14:51 2016 for Algorithms and Data Structures Package by  doxygen 1.6.3