template<class T, size_t Extent>
class nostd::span< T, Extent >
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.
Definition at line 51 of file includes/opentelemetry/nostd/span.h.
|
| template<bool B = Extent == 0, typename std::enable_if< B >::type * = nullptr> |
| | span () noexcept |
| |
| | span (T *data, size_t count) noexcept |
| |
| | span (T *first, T *last) noexcept |
| |
| template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr> |
| | span (T(&array)[N]) noexcept |
| |
| template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr> |
| | span (std::array< T, N > &array) noexcept |
| |
| template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr> |
| | 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> |
| | span (C &c) noexcept(noexcept(nostd::data(c), nostd::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> |
| | span (const C &c) noexcept(noexcept(nostd::data(c), nostd::size(c))) |
| |
| template<class U , size_t N, typename std::enable_if< N==Extent &&std::is_convertible< U(*)[], T(*)[]>::value >::type * = nullptr> |
| | span (const span< U, N > &other) noexcept |
| |
| | span (const span &) noexcept=default |
| |
| span & | operator= (const span &) noexcept=default |
| |
| bool | empty () const noexcept |
| |
| T * | data () const noexcept |
| |
| size_t | size () const noexcept |
| |
| T & | operator[] (size_t index) const noexcept |
| |
| T * | begin () const noexcept |
| |
| T * | end () const noexcept |
| |
| template<bool B = Extent == 0, typename std::enable_if< B >::type * = nullptr> |
| | span () noexcept |
| |
| | span (T *data, size_t count) noexcept |
| |
| | span (T *first, T *last) noexcept |
| |
| template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr> |
| | span (T(&array)[N]) noexcept |
| |
| template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr> |
| | span (std::array< T, N > &array) noexcept |
| |
| template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr> |
| | 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> |
| | span (C &c) noexcept(noexcept(nostd::data(c), nostd::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> |
| | span (const C &c) noexcept(noexcept(nostd::data(c), nostd::size(c))) |
| |
| template<class U , size_t N, typename std::enable_if< N==Extent &&std::is_convertible< U(*)[], T(*)[]>::value >::type * = nullptr> |
| | span (const span< U, N > &other) noexcept |
| |
| | span (const span &) noexcept=default |
| |
| span & | operator= (const span &) noexcept=default |
| |
| bool | empty () const noexcept |
| |
| T * | data () const noexcept |
| |
| size_t | size () const noexcept |
| |
| T & | operator[] (size_t index) const noexcept |
| |
| T * | begin () const noexcept |
| |
| T * | end () const noexcept |
| |