• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. Data Types/Numeric//integral_c |50
2
3integral_c
4==========
5
6Synopsis
7--------
8
9.. parsed-literal::
10
11    template<
12          typename T, T N
13        >
14    struct integral_c
15    {
16        // |unspecified|
17        // ...
18    };
19
20
21Description
22-----------
23
24A generic |Integral Constant| wrapper.
25
26
27Header
28------
29
30.. parsed-literal::
31
32    #include <boost/mpl/integral_c.hpp>
33
34
35Model of
36--------
37
38|Integral Constant|
39
40
41Parameters
42----------
43
44+---------------+-------------------------------+---------------------------+
45| Parameter     | Requirement                   | Description               |
46+===============+===============================+===========================+
47| ``T``         | An integral type              | Wrapper's value type.     |
48+---------------+-------------------------------+---------------------------+
49| ``N``         | An integral constant          | A value to wrap.          |
50+---------------+-------------------------------+---------------------------+
51
52
53Expression semantics
54--------------------
55
56|Semantics disclaimer...| |Integral Constant|.
57
58For arbitrary integral type ``t`` and integral constant ``n``:
59
60+-----------------------+-----------------------------------------------------------+
61| Expression            | Semantics                                                 |
62+=======================+===========================================================+
63| ``integral_c<t,c>``   | An |Integral Constant| ``x`` such that ``x::value == c``  |
64|                       | and ``x::value_type`` is identical to ``t``.              |
65+-----------------------+-----------------------------------------------------------+
66
67
68Example
69-------
70
71.. parsed-literal::
72
73    typedef integral_c<short,8> eight;
74
75    BOOST_MPL_ASSERT(( is_same< eight::value_type, short > ));
76    BOOST_MPL_ASSERT(( is_same< eight::type, eight > ));
77    BOOST_MPL_ASSERT(( is_same< next< eight >::type, integral_c<short,9> > ));
78    BOOST_MPL_ASSERT(( is_same< prior< eight >::type, integral_c<short,7> > ));
79    BOOST_MPL_ASSERT_RELATION( (eight::value), ==, 8 );
80    assert( eight() == 8 );
81
82
83See also
84--------
85
86|Data Types|, |Integral Constant|, |bool_|, |int_|, |long_|, |size_t|
87
88
89.. copyright:: Copyright �  2001-2009 Aleksey Gurtovoy and David Abrahams
90   Distributed under the Boost Software License, Version 1.0. (See accompanying
91   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
92