...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 / Data Types / Numeric / integral_c |
template< typename T, T N > struct integral_c { // unspecified // ... };
A generic Integral Constant wrapper.
#include <boost/mpl/integral_c.hpp>
Parameter | Requirement | Description |
---|---|---|
T | An integral type | Wrapper's value type. |
N | An integral constant | A value to wrap. |
The semantics of an expression are defined only where they differ from, or are not defined in Integral Constant.
For arbitrary integral type t and integral constant n:
Expression | Semantics |
---|---|
integral_c<t,c> | An Integral Constant x such that x::value == c and x::value_type is identical to t. |
typedef integral_c<short,8> eight; BOOST_MPL_ASSERT(( is_same< eight::value_type, short > )); BOOST_MPL_ASSERT(( is_same< eight::type, eight > )); BOOST_MPL_ASSERT(( is_same< next< eight >::type, integral_c<short,9> > )); BOOST_MPL_ASSERT(( is_same< prior< eight >::type, integral_c<short,7> > )); BOOST_MPL_ASSERT_RELATION( (eight::value), ==, 8 ); assert( eight() == 8 );