The MPL Reference Manual: if_ Boost , ,
template<
typename C
, typename T1
, typename T2
>
struct if_
{
typedef unspecified type;
};
Возвращает один из двух аргументов.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.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::