Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/libs/mpl/doc/src/refmanual/modulus.rst @ 12

Last change on this file since 12 was 12, checked in by landauf, 18 years ago

added boost

File size: 2.1 KB

modulus

Synopsis

template<
      typename T1
    , typename T2
    >
struct modulus
{
    typedef |unspecified| type;
};

Description

Returns the modulus of its arguments.

Parameters

Parameter Requirement Description
T1, T2 |Integral Constant| Operation's arguments.

|Note:| |numeric metafunction note| |-- end note|

Expression semantics

For any |Integral Constant|s c1 and c2:

typedef modulus<c1,c2>::type r;
Return type:

|Integral Constant|.

Precondition:

c2::value != 0

Semantics:

Equivalent to

typedef integral_c<
      typeof(c1::value % c2::value)
    , ( c1::value % c2::value )
    > r;
typedef modulus<c1,c2> r;
Return type:

|Integral Constant|.

Precondition:

c2::value != 0

Semantics:

Equivalent to

struct r : modulus<c1,c2>::type {};

Complexity

Amortized constant time.

Example

typedef modulus< int_<10>, long_<3> >::type r;
BOOST_MPL_ASSERT_RELATION( r::value, ==, 1 );
BOOST_MPL_ASSERT(( is_same< r::value_type, long > ));

Docutils System Messages

???????????????
Note: See TracBrowser for help on using the repository browser.