Template Class Span

Class Documentation

template<typename T>
class Span

A simple span-like class that provides a non-owning view of a buffer (std::span required C++20).

Public Functions

Span() = default
Span(const Span &other) = default
Span(Span &&other) noexcept = default
Span &operator=(const Span &other) = default
Span &operator=(Span &&other) noexcept = default
~Span() = default
inline Span(T *data, size_t size)
inline Span(void *data, size_t size)
inline Span(const void *data, size_t size)
template<typename U, typename Alloc, typename = std::enable_if_t<!is_const() && is_same<T, U>()>>
inline Span(std::vector<U, Alloc> &vec)
template<typename U, typename Alloc, typename = std::enable_if_t<is_const() && is_same<mutable_T, U>()>>
inline Span(const std::vector<U, Alloc> &vec)
template<typename U, size_t N, typename = std::enable_if_t<!is_const() && is_same<T, U>()>>
inline Span(std::array<mutable_T, N> &vec)
template<typename U, size_t N, typename = std::enable_if_t<is_const() && is_same<mutable_T, U>()>>
inline Span(const std::array<U, N> &vec)
inline T *data() const
template<typename U = T, typename = std::enable_if_t<!std::is_const_v<U>>>
inline T *data()
inline size_t size() const
inline bool empty() const
inline void trim_front(size_t n)
inline void trim_back(size_t n)