|
template<bool B = EXTENT == 0, typename std::enable_if< B >::type * = nullptr> |
| span () noexcept |
|
| span (T *input_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< typename std::decay< C >::type >::value &&std::is_convertible< typename std::remove_pointer< decltype(std::declval< C >().size())>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(std::declval< C >().size()), size_t >::value , ::type * = nullptr> |
| span (C &&c) noexcept(noexcept(c.data(), c.size())) |
|
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 |
|
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<class T, size_t EXTENT>
class gsl::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 99 of file span.h.
template<class T , size_t EXTENT>
template<class C , typename std::enable_if< !detail::is_specialized_span_convertible< typename std::decay< C >::type >::value &&std::is_convertible< typename std::remove_pointer< decltype(std::declval< C >().size())>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(std::declval< C >().size()), size_t >::value , ::type * = nullptr>