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 | |
|---|---|
| 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.
Header
#include <boost/mpl/apply.hpp>
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 );
See also
Note: See TracBrowser
for help on using the repository browser.










