The MPL Reference Manual: unpack_args

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`