30 constexpr std::ptrdiff_t
size() const noexcept {
return m_size; }
38 friend constexpr
bool operator==(
const Span& a,
const Span& b) noexcept {
return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin()); }
40 friend constexpr
bool operator<(
const Span& a,
const Span& b) noexcept {
return std::lexicographical_compare(a.begin(), a.end(), b.begin(), b.end()); }
54 template<
typename A,
int N>
constexpr std::ptrdiff_t size() const noexcept
friend constexpr bool operator<(const Span &a, const Span &b) noexcept
constexpr C * end() const noexcept
constexpr Span(C *data, std::ptrdiff_t size) noexcept
friend constexpr bool operator<=(const Span &a, const Span &b) noexcept
friend constexpr bool operator>=(const Span &a, const Span &b) noexcept
constexpr Span< A > MakeSpan(A(&a)[N])
Create a span to a container exposing data() and size().
friend constexpr bool operator!=(const Span &a, const Span &b) noexcept
friend constexpr bool operator==(const Span &a, const Span &b) noexcept
friend constexpr bool operator>(const Span &a, const Span &b) noexcept
constexpr Span< C > last(std::ptrdiff_t count) const noexcept
constexpr Span(C *data, C *end) noexcept
constexpr Span< C > subspan(std::ptrdiff_t offset) const noexcept
constexpr Span() noexcept
constexpr Span< C > first(std::ptrdiff_t count) const noexcept
constexpr C * begin() const noexcept
constexpr C * data() const noexcept
constexpr Span< C > subspan(std::ptrdiff_t offset, std::ptrdiff_t count) const noexcept
A Span is an object that can refer to a contiguous sequence of objects.
constexpr C & operator[](std::ptrdiff_t pos) const noexcept