10#ifndef INCLUDED_O3TL_SPAN_HXX
11#define INCLUDED_O3TL_SPAN_HXX
15#include <config_global.h>
21namespace o3tl {
using std::span; }
52 template<std::
size_t N>
59 assert(
a !=
nullptr || len == 0);
63 constexpr span(
const std::vector<T2>& vec)
67 constexpr span (
const span<
typename std::remove_const<T>::type>& other) noexcept
70 constexpr bool empty() const noexcept {
return size_ == 0; }
A barebones approximation of C++20 .
constexpr iterator begin() const noexcept
value_type const * const_pointer
constexpr span(const std::vector< T2 > &vec)
reverse_iterator rbegin() const noexcept
const_pointer const_iterator
constexpr iterator end() const noexcept
constexpr span() noexcept
constexpr size_type size() const noexcept
std::ptrdiff_t difference_type
constexpr span(T(&a)[N]) noexcept
constexpr pointer data() const noexcept
constexpr span(T *a, size_type len) noexcept
reverse_iterator rend() const noexcept
std::reverse_iterator< const_iterator > const_reverse_iterator
constexpr bool empty() const noexcept
value_type const & const_reference
constexpr reference operator[](size_type pos) const
constexpr span(const span< typename std::remove_const< T >::type > &other) noexcept
for assigning from span<T> to span<const T>
std::reverse_iterator< iterator > reverse_iterator