22 Containers library [containers]

22.7 Views [views]

22.7.3 Class template span [views.span]

22.7.3.7 Iterator support [span.iterators]

using iterator = implementation-defined;
The type models contiguous_­iterator ([iterator.concept.contiguous]), meets the Cpp17RandomAccessIterator requirements ([random.access.iterators]), and meets the requirements for constexpr iterators ([iterator.requirements.general]), whose value type is value_­type and whose reference type is reference.
All requirements on container iterators ([container.requirements]) apply to span​::​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;
Effects: Equivalent to: return reverse_­iterator(begin());