Iterator Component

The iterator component provides the additional functions provided in C++14 with respect to iterators. Specifically the free form functions that work like std::begin and std::end.

The iterator component can be found in <core/iterator.hpp>.

constexpr auto size(Container const& container) noexcept
Returns:container.size() or N if container is an array.
constexpr auto empty(Container const& container) noexcept
Returns:container.empty() or false if container is an array.
constexpr auto front(Container const& container)
constexpr auto front(Container& container)
Returns:container.front() or container[0] if container is an array.
constexpr auto back(Container const& container)
constexpr auto back(Container&)
Returns:container.back() or container[N - 1] if container is an array.
constexpr auto data(Container const& container) noexcept
constexpr auto data(Container& container) noexcept
Returns:container.data() or container if container is an array.
cbegin(Container const& container)
Returns:std::begin(container)
cend(Container const& container)
Returns:std::end(container)
rbegin(Container const& container)
rbegin(Container& container)

Requires that the given container have a member function named rbegin. If no such member function exists, the function will fail to compile.

Returns:container.rbegin()
crbegin(Container const& container)
Returns:rbegin(container)
rend(Container const& container)
rend(Container& container)

Requires that the given container have a member function named rend. If no such member function exists, the function will fail to compile.

Returns:container.rend()
crend(Container const& container)
Returns:rend(container)
class infix_ostream_iterator<T>

The infix_ostream_iterator<T> is used as a replacement for std::ostream_iterator, where the delimiter is not desired for the last element. This iterator comes in use when one might wish to print a list.