Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/mpl/doc/src/refmanual/apply.rst @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 2.5 KB

apply

Synopsis

template<
      typename F
    >
struct apply0
{
    typedef |unspecified| type;
};
template<
      typename F, typename A1
    >
struct apply1
{
    typedef |unspecified| type;
};
|...|
template<
      typename F, typename A1,|...| typename An
    >
struct applyn
{
    typedef |unspecified| type;
};
template<
      typename F
    , typename A1 = |unspecified|
    |...|
    , typename An = |unspecified|
    >
struct apply
{
    typedef |unspecified| type;
};

Description

Invokes a |Metafunction Class| or a |Lambda Expression| F with arguments A1,... An.

Parameters

Parameter Requirement Description
F |Lambda Expression| An expression to invoke.
|A1...An| Any type Invocation arguments.

Expression semantics

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

typedef applyn<f,a1,|...|an>::type t;
typedef apply<f,a1,|...|an>::type t;
Return type:Any type.
Semantics:Equivalent to typedef apply_wrapn< lambda<f>::type,a1,... an>::type t;.

Example

template< typename N1, typename N2 > struct int_plus
    : int_<( N1::value + N2::value )>
{
};
typedef apply< int_plus<_1,_2>, int_<2>, int_<3> >::type r1;
typedef apply< quote2<int_plus>, int_<2>, int_<3> >::type r2;
BOOST_MPL_ASSERT_RELATION( r1::value, ==, 5 );
BOOST_MPL_ASSERT_RELATION( r2::value, ==, 5 );

Docutils System Messages

?????????????????????
Note: See TracBrowser for help on using the repository browser.