|
|
using | element_kind = T |
| |
|
using | value_type = typename std::remove_cv< T >::type |
| |
|
using | size_type = span_size_type |
| |
|
using | difference_type = span_diff_type |
| |
|
using | pointer = element_kind * |
| |
|
using | const_pointer = const element_kind * |
| |
|
using | reference = element_kind & |
| |
|
using | const_reference = const element_kind & |
| |
|
using | iterator = pointer |
| |
|
using | const_iterator = const_pointer |
| |
|
using | iterator_type = core::random_access_iterator_tag |
| |
|
template<span_size_type Offset, span_size_type Count = DynamicSpanExtent> |
| using | subspan_return_t = span< T, Count !=DynamicSpanExtent ? Count :(Extent !=DynamicSpanExtent ? Extent - Offset :DynamicSpanExtent)> |
| |
|
|
constexpr | span (pointer ptr, size_type count) |
| |
|
constexpr | span (pointer begin, pointer end) |
| |
|
template<span_size_type N, span_size_type E = Extent, typename std::enable_if<(E==DynamicSpanExtent||N==E) &&detail::is_container_element_kind_compatible< element_kind(&)[N], T >::value, int >::type = 0> |
| constexpr | span (element_kind(&arr)[N]) noexcept |
| |
|
template<typename Container , span_size_type E = Extent, typename std::enable_if< E==DynamicSpanExtent &&detail::is_container< Container >::value &&detail::is_container_element_kind_compatible< Container &, T >::value, int >::type = 0> |
| constexpr | span (Container &cont) |
| |
|
template<typename Container , span_size_type E = Extent, typename std::enable_if< E==DynamicSpanExtent &&detail::is_container< Container >::value &&detail::is_container_element_kind_compatible< const Container &, T >::value, int >::type = 0> |
| constexpr | span (const Container &cont) |
| |
|
constexpr | span (const span &other) noexcept=default |
| |
|
constexpr span & | operator= (const span &other) noexcept=default |
| |
|
template<typename T2 , span_size_type Extent2, typename std::enable_if<(Extent==DynamicSpanExtent||Extent2==DynamicSpanExtent||Extent==Extent2) &&std::is_convertible< T2(*)[], T(*)[]>::value, int >::type = 0> |
| constexpr | span (const span< T2, Extent2 > &other) noexcept |
| |
|
GAIA_NODISCARD constexpr pointer | data () const noexcept |
| |
|
GAIA_NODISCARD constexpr size_type | size () const noexcept |
| |
|
GAIA_NODISCARD constexpr bool | empty () const noexcept |
| |
|
GAIA_NODISCARD constexpr reference | operator[] (size_type index) const |
| |
|
GAIA_NODISCARD constexpr iterator | begin () noexcept |
| |
|
GAIA_NODISCARD constexpr iterator | begin () const noexcept |
| |
|
GAIA_NODISCARD constexpr const_iterator | cbegin () const noexcept |
| |
|
GAIA_NODISCARD constexpr iterator | end () noexcept |
| |
|
GAIA_NODISCARD constexpr const_iterator | end () const noexcept |
| |
|
GAIA_NODISCARD constexpr const_iterator | cend () const noexcept |
| |
|
template<span_size_type Count> |
| GAIA_NODISCARD constexpr span< element_kind, Count > | first () const |
| |
|
GAIA_NODISCARD constexpr span< element_kind, DynamicSpanExtent > | first (size_type count) const |
| |
|
template<span_size_type Count> |
| GAIA_NODISCARD constexpr span< element_kind, Count > | last () const |
| |
|
GAIA_NODISCARD constexpr span< element_kind, DynamicSpanExtent > | last (size_type count) const |
| |
|
GAIA_NODISCARD constexpr reference | front () const |
| |
|
GAIA_NODISCARD constexpr reference | back () const |
| |
|
template<span_size_type Offset, span_size_type Count = DynamicSpanExtent> |
| GAIA_NODISCARD constexpr subspan_return_t< Offset, Count > | subspan () const |
| |
|
GAIA_NODISCARD constexpr span< element_kind, DynamicSpanExtent > | subspan (size_type offset, size_type count=DynamicSpanExtent) const |
| |