![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: lambdaBoost , ,
|
Front Page / Metafunctions / Composition and Argument Binding / lambda |
template< typename X , typename Tag = unspecified > struct lambda { typedef unspecified type; };
ЕслиXявляется выражениемдержателя, преобразованиеXв соответствующийкласс метафункцийВ противном случаеXвозвращается без изменений.
#include <boost/mpl/lambda.hpp>
Parameter | Requirement | Description |
---|---|---|
X | Любой тип | Выражение для преобразования. |
Таг | Любой тип | Тег, определяющий трансформационную семантику. |
Для произвольных типовxитег:
typedef lambda<x>::type f;
Return type: | |
---|---|
Semantics: | If x is a Placeholder Expression in a general form X<a1,...an>, where X is a class template and a1,... an are arbitrary types, equivalent to typedef protect< bind< quoten<X> , lambda<a1>::type,... lambda<an>::type > > f; otherwise, f is identical to x. |
typedef lambda<x,tag>::type f;
Return type: | |
---|---|
Semantics: | If x is a Placeholder Expression in a general form X<a1,...an>, where X is a class template and a1,... an are arbitrary types, equivalent to typedef protect< bind< quoten<X,tag> , lambda<a1,tag>::type,... lambda<an,tag>::type > > f; otherwise, f is identical to x. |
template< typename N1, typename N2 > struct int_plus : int_<( N1::value + N2::value )> { }; typedef lambda< int_plus<_1, int_<42> > >::type f1; typedef bind< quote2<int_plus>, _1, int_<42> > f2; typedef f1::apply<42>::type r1; typedef f2::apply<42>::type r2; BOOST_MPL_ASSERT_RELATION( r1::value, ==, 84 ); BOOST_MPL_ASSERT_RELATION( r2::value, ==, 84 );
Статья The MPL Reference Manual: lambda раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |