3rdParty/boost/1.78.0/libs/mpl/doc/refmanual/shift-right.html
| Prev Next | Back Along | Up Home | Full TOC | Front Page / Metafunctions / Bitwise Operations / shift_right |
template<
typename T
, typename Shift
>
struct[shift\_right](./shift-right.html){
typedef_unspecified_type;
};
Returns the result of bitwise shift right (>>) operation on T.
#include <[boost/mpl/shift\_right.hpp](../../../../boost/mpl/shift_right.hpp)>
#include <[boost/mpl/bitwise.hpp](../../../../boost/mpl/bitwise.hpp)>
| Parameter | Requirement | Description |
|---|---|---|
| T | Integral Constant | A value to shift. |
| Shift | Unsigned Integral Constant | A shift distance. |
[Note: The requirements listed in this specification are the ones imposed by the default implementation. See Numeric Metafunction concept for the details on how to provide an implementation for a user-defined numeric type that does not satisfy the Integral Constant requirements. — end note]
For arbitrary Integral Constant c and unsigned Integral Constant shift:
typedef[shift\_right](./shift-right.html)<c,shift>::type r;
| Return type: |
| | Semantics: |
Equivalent to
typedef[integral\_c](./integral-c.html)<
c::[value\_type](./value-type.html), ( c::value >> shift::value )
> r;
|
typedef[shift\_right](./shift-right.html)<c,shift> r;
| Return type: |
| | Semantics: |
Equivalent to
struct r :[shift\_right](./shift-right.html)<c,shift>::type {};
|
Amortized constant time.
typedef[integral\_c](./integral-c.html)<unsigned,0> u0;
typedef[integral\_c](./integral-c.html)<unsigned,1> u1;
typedef[integral\_c](./integral-c.html)<unsigned,2> u2;
typedef[integral\_c](./integral-c.html)<unsigned,8> u8;[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([shift\_right](./shift-right.html)<u0,u0>::value), ==, 0 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([shift\_right](./shift-right.html)<u1,u0>::value), ==, 1 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([shift\_right](./shift-right.html)<u1,u1>::value), ==, 0 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([shift\_right](./shift-right.html)<u2,u1>::value), ==, 1 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([shift\_right](./shift-right.html)<u8,u1>::value), ==, 4 );
Bitwise Operations, Numeric Metafunction, numeric_cast, shift_left, bitand_
| Prev Next | Back Along | Up Home | Full TOC |
Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |