Files
mpl/doc/src/refmanual/end.rst
2007-11-25 18:38:02 +00:00

100 lines
1.9 KiB
ReStructuredText

.. Sequences/Intrinsic Metafunctions//end
.. Copyright Aleksey Gurtovoy, David Abrahams 2007.
.. 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)
end
===
Synopsis
--------
.. parsed-literal::
template<
typename X
>
struct end
{
typedef |unspecified| type;
};
Description
-----------
Returns the sequence's past-the-end iterator. If the argument is not a
|Forward Sequence|, returns |void_|.
Header
------
.. parsed-literal::
#include <boost/mpl/begin_end.hpp>
Model of
--------
|Tag Dispatched Metafunction|
Parameters
----------
+---------------+-------------------+-----------------------------------------------+
| Parameter | Requirement | Description |
+===============+===================+===============================================+
| ``X`` | Any type | A type whose end iterator, if any, will be |
| | | returned. |
+---------------+-------------------+-----------------------------------------------+
Expression semantics
--------------------
For any arbitrary type ``x``:
.. parsed-literal::
typedef end<x>::type last;
:Return type:
|Forward Iterator| or |void_|.
:Semantics:
If ``x`` is |Forward Sequence|, ``last`` is an iterator pointing one past the
last element in ``s``; otherwise ``last`` is |void_|.
:Postcondition:
If ``last`` is an iterator, it is past-the-end.
Complexity
----------
Amortized constant time.
Example
-------
.. parsed-literal::
typedef vector<long> v;
typedef begin<v>::type first;
typedef end<v>::type last;
BOOST_MPL_ASSERT(( is_same< next<first>::type, last > ));
See also
--------
|Iterators|, |Forward Sequence|, |begin|, |end|, |next|