22 Containers library [containers]

22.7 Views [views]

22.7.3 Class template span [views.span]

22.7.3.6 Iterator support [span.iterators]

using iterator = implementation-defined; using const_iterator = implementation-defined;
The types model contiguous_­iterator ([iterator.concept.contiguous]), meet the Cpp17RandomAccessIterator requirements ([random.access.iterators]), and meet the requirements for constexpr iterators ([iterator.requirements.general]).
All requirements on container iterators ([container.requirements]) apply to span​::​iterator and span​::​const_­iterator as well.
constexpr iterator begin() const noexcept;
Returns: An iterator referring to the first element in the span.
If empty() is true, then it returns the same value as end().
constexpr iterator end() const noexcept;
Returns: An iterator which is the past-the-end value.
constexpr reverse_iterator rbegin() const noexcept;
Effects: Equivalent to: return reverse_­iterator(end());
constexpr reverse_iterator rend() const noexcept;
Returns: Equivalent to: return reverse_­iterator(begin());
constexpr const_iterator cbegin() const noexcept;
Returns: A constant iterator referring to the first element in the span.
If empty() is true, then it returns the same value as cend().
constexpr const_iterator cend() const noexcept;
Returns: A constant iterator which is the past-the-end value.
constexpr const_reverse_iterator crbegin() const noexcept;
Effects: Equivalent to: return const_­reverse_­iterator(cend());
constexpr const_reverse_iterator crend() const noexcept;
Effects: Equivalent to: return const_­reverse_­iterator(cbegin());