Back to Arangodb

Integral Sequence Wrapper

3rdParty/boost/1.78.0/libs/mpl/doc/src/refmanual/IntegralSequenceWrapper.rst

3.12.9.13.8 KB
Original Source

.. Sequences/Concepts//Integral Sequence Wrapper |90

Integral Sequence Wrapper

Description

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|\ ``>``

Expression requirements

|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. | +-------------------------------+-----------------------+---------------------------+

Expression semantics

.. 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.

Models

  • |vector_c|
  • |list_c|
  • |set_c|

See also

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