Template Class span

Class Documentation

template<class T, size_t Extent>
class opentelemetry::nostd::span

Back port of std::span.

See https://en.cppreference.com/w/cpp/container/span for interface documentation.

Note: This provides a subset of the methods available on std::span.

Note: The std::span API specifies error cases to have undefined behavior, so this implementation chooses to terminate or assert rather than throw exceptions.

Public Functions

template<bool B = Extent == 0, typename std::enable_if<B>::type* = nullptr>
inline span() noexcept
inline span(T *data, size_t count) noexcept
inline span(T *first, T *last) noexcept
template<size_t N, typename std::enable_if<Extent == N>::type* = nullptr>
inline span(T (&array)[N]) noexcept
template<size_t N, typename std::enable_if<Extent == N>::type* = nullptr>
inline span(std::array<T, N> &array) noexcept
template<size_t N, typename std::enable_if<Extent == N>::type* = nullptr>
inline span(const std::array<T, N> &array) noexcept
template<class C, typename std::enable_if<!detail::is_specialized_span_convertible<C>::value && std::is_convertible<typename std::remove_pointer<decltype(nostd::data(std::declval<C&>()))>::type (*)[], T (*)[]>::value && std::is_convertible<decltype(nostd::size(std::declval<const C&>())), size_t>::value>::type* = nullptr>
inline span(C &c) noexcept(noexcept(data(c), size(c)))
template<class C, typename std::enable_if<!detail::is_specialized_span_convertible<C>::value && std::is_convertible<typename std::remove_pointer<decltype(nostd::data(std::declval<const C&>()))>::type (*)[], T (*)[]>::value && std::is_convertible<decltype(nostd::size(std::declval<const C&>())), size_t>::value>::type* = nullptr>
inline span(const C &c) noexcept(noexcept(data(c), size(c)))
template<class U, size_t N, typename std::enable_if<N == Extent && std::is_convertible<U (*)[], T (*)[]>::value>::type* = nullptr>
inline span(const span<U, N> &other) noexcept
span(const span&) noexcept = default
inline bool empty() const noexcept
inline T *data() const noexcept
inline size_t size() const noexcept
inline T &operator[](size_t index) const noexcept
inline T *begin() const noexcept
inline T *end() const noexcept

Public Static Attributes

static constexpr size_t extent = Extent