Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

The MPL Reference Manual: if_c

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Front Page / Metafunctions / Type Selection / if_c

if_c

Synopsis

template<
      bool c
    , typename T1
    , typename T2
    >
struct if_c
{
    typedef unspecified type;
};

Description

Возвращает один из двух аргументов.T1илиT2в зависимости от величины интегральной постояннойc.if_c::typeявляется рубцовым обозначением для, если_<bool_,t1,t2>:.

Parameters

Parameter Requirement Description
c Интегральная постоянная Условие отбора.
T1,T2 Любой тип Типы для выбора.

Expression semantics

Для любой интегральной постояннойcи произвольных типовt1,t2:

typedef if_c<c,t1,t2>::type t;
Return type:Any type.
Semantics:Equivalent to typedef if_< bool_<c>,t1,t2 >::type t;

Example

typedef if_c<true,char,long>::type t1;
typedef if_c<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_c<
          sizeof(T) <= sizeof(T*)
        , inplace_storage<T>
        , heap_storage<T>
        >::type impl_t;
    impl_t impl;
};

Статья The MPL Reference Manual: if_c раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:42:30/0.0050890445709229/1