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 / back

back

Synopsis

template<
      typename Sequence
    >
struct back
{
    typedef unspecified type;
};

Description

Returns the last element in the sequence.

Header

#include <boost/mpl/back.hpp>

Model of

Tag Dispatched Metafunction

Parameters

Parameter Requirement Description
Sequence Bidirectional Sequence A sequence to be examined.

Expression semantics

For any Bidirectional Sequence s:

typedef back<s>::type t;
Return type:

A type.

Precondition:

empty<s>::value == false.

Semantics:

Equivalent to

typedef deref< prior< end<s>::type >::type >::type t;

Complexity

Amortized constant time.

Example

typedef range_c<int,0,1> range1;
typedef range_c<int,0,10> range2;
typedef range_c<int,-10,0> range3;

BOOST_MPL_ASSERT_RELATION( back<range1>::value, ==, 0 );
BOOST_MPL_ASSERT_RELATION( back<range2>::value, ==, 9 );
BOOST_MPL_ASSERT_RELATION( back<range3>::value, ==, -1 );

See also

Bidirectional Sequence, front, push_back, end, deref, at