3rdParty/boost/1.78.0/libs/mpl/doc/src/refmanual/IntegralConstant.rst
.. Data Types/Concepts//Integral Constant
An |Integral Constant| is a holder class for a compile-time value of an integral type. Every |Integral Constant| is also a nullary |Metafunction|, returning itself. An integral constant object is implicitly convertible to the corresponding run-time value of the wrapped integral type.
|In the following table...| n is a model of |Integral Constant|.
+-----------------------------------+---------------------------------------+---------------------------+
| Expression | Type | Complexity |
+===================================+=======================================+===========================+
| n::tag | integral_c_tag | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
| n::value_type | An integral type | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
| n::value | An integral constant expression | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
| n::type | |Integral Constant| | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
| next<n>::type | |Integral Constant| | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
| prior<n>::type | |Integral Constant| | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
| n::value_type const c = n() | | Constant time. |
+-----------------------------------+---------------------------------------+---------------------------+
+---------------------------------------+-----------------------------------------------------------+
| Expression | Semantics |
+=======================================+===========================================================+
| n::tag | n\ 's tag type; n::tag::value is n\ 's |
| | conversion rank. |
+---------------------------------------+-----------------------------------------------------------+
| n::value_type | A cv-unqualified type of n::value. |
+---------------------------------------+-----------------------------------------------------------+
| n::value | The value of the wrapped integral constant. |
+---------------------------------------+-----------------------------------------------------------+
| n::type | is_same<n::type,n>::value == true. |
+---------------------------------------+-----------------------------------------------------------+
| next<n>::type | An |Integral Constant| c of type n::value_type |
| | such that c::value == n::value + 1. |
+---------------------------------------+-----------------------------------------------------------+
| prior<n>::type | An |Integral Constant| c of type n::value_type |
| | such that c::value == n::value - 1. |
+---------------------------------------+-----------------------------------------------------------+
| n::value_type const c = n() | c == n::value. |
+---------------------------------------+-----------------------------------------------------------+
|Data Types|, |Integral Sequence Wrapper|, |integral_c|
.. copyright:: 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)