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`