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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Sequences / Intrinsic Metafunctions / end

end

Synopsis

template<
      typename X
    >
struct end
{
    typedef unspecified type;
};

Description

Returns the sequence's past-the-end iterator. If the argument is not a Forward Sequence, returns void_.

Header

#include <boost/mpl/begin_end.hpp>

Model of

Tag Dispatched Metafunction

Parameters

Parameter Requirement Description
X Any type A type whose end iterator, if any, will be returned.

Expression semantics

For any arbitrary type x:

typedef end<x>::type last;
Return type:Forward Iterator or void_.
Semantics:If x is Forward Sequence, last is an iterator pointing one past the last element in s; otherwise last is void_.
Postcondition:If last is an iterator, it is past-the-end.

Complexity

Amortized constant time.

Example

typedef vector<long> v;
typedef begin<v>::type first;
typedef end<v>::type last;

BOOST_MPL_ASSERT(( is_same< next<first>::type, last > ));

See also

Iterators, Forward Sequence, begin, end, next