![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: if_Boost , ,
|
Front Page / Metafunctions / Type Selection / if_ |
template< typename C , typename T1 , typename T2 > struct if_ { typedef unspecified type; };
Возвращает один из двух аргументов.T1илиT2, в зависимости от значенияС.
#include <boost/mpl/if.hpp>
Parameter | Requirement | Description |
---|---|---|
С | Интегральная постоянная | Условие отбора. |
T1,T2 | Любой тип | Типы для выбора. |
Для любогоинтегральной постояннойcи произвольных типовt1,t2:
typedef if_<c,t1,t2>::type t;
Return type: | Any type. |
---|---|
Semantics: | If c::value == true, t is identical to t1; otherwise t is identical to t2. |
typedef if_<true_,char,long>::type t1; typedef if_<false_,char,long>::type t2; BOOST_MPL_ASSERT(( is_same<t1, char> )); BOOST_MPL_ASSERT(( is_same<t2, long> ));
// allocates space for an object of class T on heap or "inplace" // depending on its size template< typename T > struct lightweight { // ... typedef typename if_< less_equal< sizeof_<T>, sizeof_<T*> > , inplace_storage<T> , heap_storage<T> >::type impl_t; impl_t impl; };
Статья The MPL Reference Manual: if_ раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |