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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Data Types / Numeric / integral_c



      typename T, T N
struct integral_c
    // unspecified
    // ...


A generic Integral Constant wrapper.


#include <boost/mpl/integral_c.hpp>

Model of

Integral Constant


Parameter Requirement Description
T An integral type Wrapper's value type.
N An integral constant A value to wrap.

Expression semantics

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 );

See also

Data Types, Integral Constant, bool_, int_, long_, size_t