Template Class span¶
Defined in File span.h
Class Documentation¶
-
template<class
T
, size_tExtent
>
classopentelemetry::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<size_t
N
, typename std::enable_if<Extent == N>::type* = nullptr>
inlinespan
(T (&array)[N]) noexcept¶
-
template<size_t
N
, typename std::enable_if<Extent == N>::type* = nullptr>
inlinespan
(std::array<T, N> &array) noexcept¶
-
template<size_t
N
, typename std::enable_if<Extent == N>::type* = nullptr>
inlinespan
(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>
inlinespan
(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>
inlinespan
(const C &c) noexcept(noexcept(data
(c
),size
(c
)))¶
-
template<class
U
, size_tN
, typename std::enable_if<N == Extent && std::is_convertible<U (*)[], T (*)[]>::value>::type* = nullptr>
inlinespan
(const span<U, N> &other) noexcept¶
-
inline bool
empty
() const noexcept¶
-
inline size_t
size
() const noexcept¶
-
template<size_t