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 / Metafunctions / Invocation / unpack_args

unpack_args

Synopsis

template<
      typename F
    >
struct unpack_args
{
    // unspecified
    // ...
};

Description

A higher-order primitive transforming an n-ary Lambda Expression F into an unary Metafunction Class g accepting a single sequence of n arguments.

Header

#include <boost/mpl/unpack_args.hpp>

Model of

Metafunction Class

Parameters

Parameter Requirement Description
F Lambda Expression A lambda expression to adopt.

Expression semantics

For an arbitrary Lambda Expression f, and arbitrary types a1,... an:

typedef unpack_args<f> g;
Return type:

Metafunction Class.

Semantics:

g is a unary Metafunction Class such that

apply_wrapn< g, vector<a1,...an> >::type

is identical to

apply<F,a1,...an>::type

Example

BOOST_MPL_ASSERT(( apply<
      unpack_args< is_same<_1,_2> >
    , vector<int,int>
    > ));

See also

Metafunctions, Lambda Expression, Metafunction Class, apply, apply_wrap, bind