3rdParty/boost/1.78.0/libs/mpl/doc/src/refmanual/IntegralSequenceWrapper.rst
.. Sequences/Concepts//Integral Sequence Wrapper |90
An |Integral Sequence Wrapper| is a class template that provides a concise
interface for creating a corresponding sequence of |Integral Constant|\ s. In
particular, assuming that seq is a name of the wrapper's underlying
sequence and |c1...cn| are integral constants of an integral type T to
be stored in the sequence, the wrapper provides us with the following
notation:
.. line-block::
``seq_c<T``,\ |c1...cn|\ ``>``
If seq is a |Variadic Sequence|, numbered wrapper forms are
also avaialable:
.. line-block::
``seq``\ *n*\ ``_c<T``,\ |c1...cn|\ ``>``
|In the following table...| seq is a placeholder token for the
|Integral Sequence Wrapper|'s underlying sequence's name.
.. |seq_c| replace:: seq_c<T,\ |c1...cn|
.. |seqn_c| replace:: seq\ n\ _c<T,\ |c1...cn|
+-------------------------------+-----------------------+---------------------------+
| Expression | Type | Complexity |
+===============================+=======================+===========================+
| |seq_c|\ > | |Forward Sequence| | Amortized constant time. |
+-------------------------------+-----------------------+---------------------------+
| |seq_c|\ >::type | |Forward Sequence| | Amortized constant time. |
+-------------------------------+-----------------------+---------------------------+
| |seq_c|\ >::value_type | An integral type | Amortized constant time. |
+-------------------------------+-----------------------+---------------------------+
| |seqn_c|\ > | |Forward Sequence| | Amortized constant time. |
+-------------------------------+-----------------------+---------------------------+
| |seqn_c|\ >::type | |Forward Sequence| | Amortized constant time. |
+-------------------------------+-----------------------+---------------------------+
| |seqn_c|\ >::value_type | An integral type | Amortized constant time. |
+-------------------------------+-----------------------+---------------------------+
.. parsed-literal::
typedef seq_c<T,\ |c1...cn|> s;
typedef seq\ *n*\ _c<T,\ |c1...cn|> s;
:Semantics:
s is a sequence seq of integral constant wrappers integral_c<T,\ |c1|\ >,
integral_c<T,\ |c2|\ >, ... integral_c<T,\ |cn|\ >.
:Postcondition:
size<s>::value == n.
.. .. parsed-literal::
BOOST_MPL_ASSERT_RELATION(( at_c<v,0>::type::value,==,\ |c1| ));
BOOST_MPL_ASSERT_RELATION(( at_c<v,1>::type::value,==,\ |c2| ));
...
BOOST_MPL_ASSERT_RELATION(( at_c<v,\ *n*>::type::value,==,\ |cn| ));
.. ..........................................................................
.. parsed-literal::
typedef seq_c<T,\ |c1...cn|>::type s;
typedef seq\ *n*\ _c<T,\ |c1...cn|>::type s;
:Semantics:
s is identical to
seq\ n\ <\ integral_c<T,\ |c1|\ >,\ integral_c<T,\ |c2|\ >,
... integral_c<T,\ |cn|\ > >.
.. ..........................................................................
.. parsed-literal::
typedef seq_c<T,\ |c1...cn|>::value_type t;
typedef seq\ *n*\ _c<T,\ |c1...cn|>::value_type t;
:Semantics:
is_same<t,T>::value == true.
|Sequences|, |Variadic Sequence|, |Integral Constant|
.. 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)