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

value_type

Synopsis

template<
      typename Sequence
    , typename X
    >
struct value_type
{
    typedef unspecified type;
};

Description

Returns the value that would be used for element X in Sequence.

Header

#include <boost/mpl/value_type.hpp>

Model of

Tag Dispatched Metafunction

Parameters

Parameter Requirement Description
Sequence Associative Sequence A sequence to query.
X Any type The type to get the value for.

Expression semantics

For any Associative Sequence s, and an artibrary type x:

typedef value_type<s,x>::type v;
Return type:

A type.

Precondition:

x can be put in s.

Semantics:

v is the value that would be used for x in s.

Postcondition:

If .. parsed-literal:

has_key< s,key_type<s,x>::type >::type

then .. parsed-literal:

at< s,key_type<s,x>::type >::type

is identical to value_type<s,x>::type.

Complexity

Amortized constant time.

Example

typedef value_type< map<>,pair<int,unsigned> >::type v1;
typedef value_type< set<>,pair<int,unsigned> >::type v2;

BOOST_MPL_ASSERT(( is_same< v1,unsigned > ));
BOOST_MPL_ASSERT(( is_same< v2,pair<int,unsigned> > ));

See also

Associative Sequence, key_type, at, set, map