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: front
Front Page / Sequences / Intrinsic Metafunctions / front

front

Synopsis

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

Description

Returns the first element in the sequence.

Parameters

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

Expression semantics

For any Forward Sequence s:

typedef front::type t;
Return type:

A type.

Precondition:

empty::value == false.

Semantics:

Equivalent to

typedef deref< begin::type >::type t;

Complexity

Amortized constant time.

Example

typedef list::type types1;
typedef list::type types2;
typedef list::type types3;

BOOST_MPL_ASSERT(( is_same< front::type, long > ));
BOOST_MPL_ASSERT(( is_same< front::type, int> ));
BOOST_MPL_ASSERT(( is_same< front::type, char> ));