Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

The MPL Reference Manual: deref
Front Page / Iterators / Iterator Metafunctions / deref

deref

Synopsis

template<
      typename Iterator
    >
struct deref
{
    typedef unspecified type;
};

Description

Dereferences an iterator.

Parameters

Parameter Requirement Description
Iterator Forward Iterator The iterator to dereference.

Expression semantics

For any Forward Iterators iter:

typedef deref<iter>::type t; 
Return type:A type.
Precondition:iter is dereferenceable.
Semantics:

t is identical to the element referenced by iter. If iter is a user-defined iterator, the library-provided default implementation is equivalent to

typedef iter::type t;

Complexity

Amortized constant time.

Example

typedef vector<char,short,int,long> types;
typedef begin<types>::type iter;

BOOST_MPL_ASSERT(( is_same< deref<iter>::type, char > ));