![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: protectBoost , ,
|
Front Page / Metafunctions / Composition and Argument Binding / protect |
Защитаявляется оберткой идентичности дляметафункционального класса, которая предотвращает признание его аргумента в качествесвязывающего выражения.
#include <boost/mpl/protect.hpp>
Parameter | Requirement | Description |
---|---|---|
F | Класс метафункций | Класс метафункций. |
Для любогометафункционального классаf:
typedef protect<f> g;
Return type: | |
---|---|
Semantics: | If f is a bind expression, equivalent to struct g { template< typename U1 = unspecified,... typename Un = unspecified > struct apply : apply_wrapn<f,U1,...Un> { }; }; otherwise equivalent to typedef f g;. |
struct f { template< typename T1, typename T2 > struct apply { typedef T2 type; }; }; typedef bind< quote3<if_>,_1,_2,bind<f,_1,_2> > b1; typedef bind< quote3<if_>,_1,_2,protect< bind<f,_1,_2> > > b2; typedef apply_wrap2< b1,false_,char >::type r1; typedef apply_wrap2< b2,false_,char >::type r2; BOOST_MPL_ASSERT(( is_same<r1,char> )); BOOST_MPL_ASSERT(( is_same<r2,protect< bind<f,_1,_2> > > ));
Статья The MPL Reference Manual: protect раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |