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

The MPL Reference Manual: shift_left

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 / Bitwise Operations / shift_left

shift_left

Synopsis

template<
      typename T
    , typename Shift
    >
struct shift_left
{
    typedef unspecified type;
};

Description

Возвращает результат битовогосдвига влево(<<) операция наT.

Parameters

Parameter Requirement Description
Т Интегральная постоянная Ценность для изменения.
Сдвиг НеподписанныйИнтегральная постоянная Расстояние сдвига.

[править]Примечание:Требования, перечисленные в этой спецификации, являются теми, которые налагаются реализацией по умолчанию. См.Концепция численной метафункциидля подробной информации о том, как обеспечить реализацию для определенного пользователем числового типа, который не удовлетворяет требованиямИнтегральная постоянная. —Конечная примечание

Expression semantics

Для произвольнойинтегральной постояннойcи неподписаннойинтегральной постояннойсмещения:

typedef shift_left<c,shift>::type r;
Return type:

Integral Constant.

Semantics:

Equivalent to

typedef integral_c<
      c::value_type
    , ( c::value << shift::value )
    > r;
typedef shift_left<c,shift> r;
Return type:

Integral Constant.

Semantics:

Equivalent to

struct r : shift_left<c,shift>::type {};

Complexity

Амортизированное постоянное время.

Example

typedef integral_c<unsigned,0> u0;
typedef integral_c<unsigned,1> u1;
typedef integral_c<unsigned,2> u2;
typedef integral_c<unsigned,8> u8;
BOOST_MPL_ASSERT_RELATION( (shift_left<u0,u0>::value), ==, 0 );
BOOST_MPL_ASSERT_RELATION( (shift_left<u1,u0>::value), ==, 1 );
BOOST_MPL_ASSERT_RELATION( (shift_left<u1,u1>::value), ==, 2 );
BOOST_MPL_ASSERT_RELATION( (shift_left<u2,u1>::value), ==, 4 );
BOOST_MPL_ASSERT_RELATION( (shift_left<u8,u1>::value), ==, 16 );

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 20:26:06/0.0058581829071045/0