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

Front Page / Sequences / Intrinsic Metafunctions / front

front

Synopsis

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

Description

Returns the first element in the sequence.

Header

#include <boost/mpl/front.hpp>

Model of

Tag Dispatched Metafunction

Parameters

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

Expression semantics

For any Forward Sequence s:

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

A type.

Precondition:

empty<s>::value == false.

Semantics:

Equivalent to

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

Complexity

Amortized constant time.

Example

typedef list<long>::type types1;
typedef list<int,long>::type types2;
typedef list<char,int,long>::type types3;

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

See also

Forward Sequence, back, push_front, begin, deref, at