Function end

Summary

#include "breeze/iteration/begin_end.hpp"

(1) template <typename C>
    constexpr C::iterator end(C &c) noexcept(noexcept(c.end()))

(2) template <typename C>
    constexpr C::const_iterator end(C const &c) noexcept(noexcept(c.end()))

(3) template <typename T, std::ptrdiff_t n>
    constexpr T * end(T(&a)[n]) noexcept

Function overload

Synopsis

#include "breeze/iteration/begin_end.hpp"

template <typename C>
constexpr C::iterator end(C &c) noexcept(noexcept(c.end()))

Description

Returns
The same as c.end(), for any standard container.

Source

Lines 93-98 in breeze/iteration/begin_end.hpp.

template< typename C >
constexpr typename C::iterator
end( C & c ) noexcept( noexcept( c.end() ) )
{
    return c.end() ;
}

Synopsis

#include "breeze/iteration/begin_end.hpp"

template <typename C>
constexpr C::const_iterator end(C const &c) noexcept(noexcept(c.end()))

Description

Returns
The same as c.end(), for any standard container.

Source

Lines 106-111 in breeze/iteration/begin_end.hpp.

template< typename C >
constexpr typename C::const_iterator
end( C const & c ) noexcept( noexcept( c.end() ) )
{
    return c.end() ;
}

Synopsis

#include "breeze/iteration/begin_end.hpp"

template <typename T, std::ptrdiff_t n>
constexpr T * end(T(&a)[n]) noexcept

Description

Like container::end(), but for a built-in array.

(The remark, made for begin(), that there's no need for a "T const overload" applies here, as well.)

Source

Lines 160-165 in breeze/iteration/begin_end.hpp.

template< typename T, std::ptrdiff_t n >
constexpr T *
end( T ( &a )[ n ] ) noexcept
{
    return a + n ;
}