![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: apply_wrapBoost , ,
|
Front Page / Metafunctions / Invocation / apply_wrap |
template< typename F > struct apply_wrap0 { typedef unspecified type; }; template< typename F, typename A1 > struct apply_wrap1 { typedef unspecified type; }; ... template< typename F, typename A1,... typename An > struct apply_wrapn { typedef unspecified type; };
Класс метафункцийFс аргументамиА1,Ан.
По сути,apply_wrapформы представляют собой не что иное, как синтаксические обертки вокругF::apply
#include <boost/mpl/apply_wrap.hpp>
Parameter | Requirement | Description |
---|---|---|
F | Класс метафункций | Класс метафункций для вызова. |
А1...Ан | Любой тип | Призываю аргументы. |
Для любогометафункционального классаfи произвольных типовa1...a:
typedef apply_wrapn<f,a1,...an>::type t;
Return type: | Any type. |
---|---|
Semantics: | If n > 0, equivalent to typedef f::apply<a1,... an>::type t;, otherwise equivalent to either typedef f::apply::type t; or typedef f::apply<>::type t; depending on whether f::apply is a class or a class template. |
struct f0 { template< typename T = int > struct apply { typedef char type; }; }; struct g0 { struct apply { typedef char type; }; }; struct f2 { template< typename T1, typename T2 > struct apply { typedef T2 type; }; }; typedef apply_wrap0< f0 >::type r1; typedef apply_wrap0< g0 >::type r2; typedef apply_wrap2< f2,int,char >::type r3; BOOST_MPL_ASSERT(( is_same<r1,char> )); BOOST_MPL_ASSERT(( is_same<r2,char> )); BOOST_MPL_ASSERT(( is_same<r3,char> ));
Статья The MPL Reference Manual: apply_wrap раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |