mirror of
https://github.com/boostorg/mpl.git
synced 2025-10-04 03:31:09 +02:00
100 lines
1.9 KiB
ReStructuredText
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|
|