blob: a834e060ff5ed108f5034626512dc26fe245259b [file] [log] [blame]
.. Sequences/Intrinsic Metafunctions//push_back
push_back
=========
Synopsis
--------
.. parsed-literal::
template<
typename Sequence
, typename T
>
struct push_back
{
typedef |unspecified| type;
};
Description
-----------
``push_back`` performs an insertion at the end of the sequence with guaranteed |O(1)|
complexity.
Header
------
.. parsed-literal::
#include <boost/mpl/push_back.hpp>
Model of
--------
|Tag Dispatched Metafunction|
Parameters
----------
+---------------+-------------------------------+-----------------------------------------------+
| Parameter | Requirement | Description |
+===============+===============================+===============================================+
| ``Sequence`` | |Back Extensible Sequence| | A sequence to insert into. |
+---------------+-------------------------------+-----------------------------------------------+
| ``T`` | Any type | The element to be inserted. |
+---------------+-------------------------------+-----------------------------------------------+
Expression semantics
--------------------
For any |Back Extensible Sequence| ``s`` and arbitrary type ``x``:
.. parsed-literal::
typedef push_back<s,x>::type r;
:Return type:
|Back Extensible Sequence|.
:Semantics:
Equivalent to
.. parsed-literal::
typedef insert< s,end<s>::type,x >::type r;
:Postcondition:
``back<r>::type`` is identical to ``x``;
.. parsed-literal::
size<r>::value == size<s>::value + 1
Complexity
----------
Amortized constant time.
Example
-------
.. parsed-literal::
typedef vector_c<bool,false,false,false,
true,true,true,false,false> bools;
typedef push_back<bools,false_>::type message;
BOOST_MPL_ASSERT_RELATION( back<message>::type::value, ==, false );
BOOST_MPL_ASSERT_RELATION(
( count_if<message, equal_to<_1,false_> >::value ), ==, 6
);
See also
--------
|Back Extensible Sequence|, |insert|, |pop_back|, |back|, |push_front|
.. 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)