wpl::tool::valued_iterator< Bottom > Struct Template Reference

Iterator which embeds its value. More...

#include <wipal/tool/valued_iterator.hh>

Inheritance diagram for wpl::tool::valued_iterator< Bottom >:
wpl::tool::iterator< Bottom > wpl::tool::static_base< Bottom > wpl::filter::internals::fast_intersector_iterator< I1, I2, B, Bottom > wpl::filter::internals::lr_sync_iterator< I, B, Bottom > wpl::filter::internals::time_adjuster_iterator< InputIterator1, InputIterator2, HeaderType, B, Bottom > wpl::filter::internals::timetracker_iterator< InputIterator, HeaderType, B, Bottom > wpl::filter::internals::uniquely_identifiable_iterator< U, I, H, B, Bottom > wpl::filter::internals::windowed_merge_iterator< HT, I1, I2, B, Bottom >

List of all members.

Public Types

Static hierarchies related types

typedef HIDDEN exact_type
typedef iterator< exact_typesuper_type
typedef HIDDEN value_type
Iterator types.

typedef ssize_t difference_type
typedef value_type * pointer
typedef value_type & reference
typedef std::input_iterator_tag iterator_category

Public Member Functions

Indirection as a reference

const value_type & get () const
value_type & get ()
Indirection as a pointer

const value_type * get_ptr () const
value_type * get_ptr ()
Equality checks

bool operator== (const exact_type &) const
bool operator!= (const exact_type &) const
Increment operators

const exact_typeoperator++ ()
exact_type operator++ (int)
Indirections

const value_type & operator* () const
const value_type * operator-> () const
Downcast methods

const exact_typeexact () const
exact_typeexact ()
const exact_typeexact_ptr () const
exact_typeexact_ptr ()

Protected Types

typedef boost::optional
< value_type > 
optional_value

Protected Member Functions

 ~valued_iterator ()
Access to the iterator's embedded value

const optional_valuevalue () const
optional_valuevalue ()

Detailed Description

template<class Bottom>
struct wpl::tool::valued_iterator< Bottom >

Iterator which embeds its value.

valued_iterator represents an iterator that embeds its value inside a boost::optional<value_type> attribute. Subclasses access this value using value(). valued_iterator implements the get() and get_ptr() methods which are required by iterator. These methods return the embeded value (with undefined results if the value is boost::none_t). Implement the increment() and equal() methods to subclass it. increment() should either store the next element into value(), either store boost::none_t to indicate end of iteration.

Subclasses must also declare the value_type virtual type .

See also:
iterator

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

Generated by  doxygen 1.6.2