.. Sequences/Intrinsic Metafunctions//end 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 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::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 v; typedef begin::type first; typedef end::type last; BOOST_MPL_ASSERT(( is_same< next::type, last > )); See also -------- |Iterators|, |Forward Sequence|, |begin|, |end|, |next|