Public Types | |
using | difference_type = index_type |
using | element_type = T |
using | index_type = detail::span_index_t |
using | iterator = T * |
using | pointer = T * |
using | reference = T & |
using | reverse_iterator = ranges::reverse_iterator< iterator > |
using | value_type = meta::_t< std::remove_cv< T > > |
Public Member Functions | |
constexpr iterator | begin () const noexcept |
constexpr pointer | data () const noexcept |
constexpr bool | empty () const noexcept |
constexpr iterator | end () const noexcept |
template<index_type Count> | |
constexpr span< T, Count > | first () const noexcept |
constexpr span< T > | first (index_type cnt) const noexcept |
template<index_type Count> | |
constexpr span< T, Count > | last () const noexcept |
constexpr span< T > | last (index_type cnt) const noexcept |
template<typename U , index_type M> requires equality_comparable_with<T, U> | |
bool | operator!= (span< U, M > const &that) const |
template<typename U , index_type M> requires totally_ordered_with<T, U> | |
bool | operator< (span< U, M > const &that) const |
template<typename U , index_type M> requires totally_ordered_with<T, U> | |
bool | operator<= (span< U, M > const &that) const |
template<typename U , index_type M> requires equality_comparable_with<T, U> | |
bool | operator== (span< U, M > const &that) const |
template<typename U , index_type M> requires totally_ordered_with<T, U> | |
bool | operator> (span< U, M > const &that) const |
template<typename U , index_type M> requires totally_ordered_with<T, U> | |
bool | operator>= (span< U, M > const &that) const |
constexpr reference | operator[] (index_type idx) const noexcept |
constexpr reverse_iterator | rbegin () const noexcept |
constexpr reverse_iterator | rend () const noexcept |
constexpr index_type | size_bytes () const noexcept |
template<typename = void> | |
constexpr | span (pointer first, pointer last) noexcept |
constexpr | span (pointer ptr, index_type cnt) noexcept |
template<typename Rng > requires (!same_as<span, uncvref_t<Rng>>) && span_compatible_range<Rng, T> && span_static_conversion<Rng, N> | |
constexpr | span (Rng &&rng) noexcept(noexcept(ranges::data(rng))) |
template<typename Rng > requires (!same_as<span, uncvref_t<Rng>>) && span_compatible_range<Rng, T> && span_dynamic_conversion<Rng, N> | |
constexpr | span (Rng &&rng) noexcept(noexcept(ranges::data(rng), ranges::size(rng))) |
template<index_type Offset, index_type Count> | |
constexpr span< T, detail::subspan_extent(N, Offset, Count)> | subspan () const noexcept |
template<index_type Offset> | |
constexpr span< T,(N >=Offset ? N - Offset :dynamic_extent)> | subspan () const noexcept |
constexpr span< T, dynamic_extent > | subspan (index_type offset) const noexcept |
constexpr span< T, dynamic_extent > | subspan (index_type offset, index_type cnt) const noexcept |
Public Member Functions inherited from ranges::view_interface< span< T, dynamic_extent >,(dynamic_extent==dynamic_extent ? finite :static_cast< cardinality >(dynamic_extent))> | |
constexpr auto | empty () const noexcept -> bool |
Test whether a range can be empty: | |
&&!detail ::has_fixed_size_< Cardinality > &&forward_range< D< True > const > constexpr bool | empty () const noexcept(noexcept(bool(ranges::begin(std::declval< D< True > const & >())==ranges::end(std::declval< D< True > const & >())))) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
&&Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > >) &&sized_range< D< True > > constexpr bool empty() noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0))) { return ranges::size(derived())==0;} template< bool True=true > &&Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >) &&sized_range< D< True > const > constexpr bool empty() const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0))) { return ranges::size(derived())==0;} template< bool True=true > &&!detail ::has_fixed_size_< Cardinality > &&forward_range< D< True > > constexpr bool | empty () noexcept(noexcept(bool(ranges::begin(std::declval< D< True > & >())==ranges::end(std::declval< D< True > & >())))) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
&&detail::can_empty_< D< True > const > constexpr | operator bool () const noexcept(noexcept(ranges::empty(std::declval< D< True > const & >()))) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
&&detail::can_empty_< D< True > > constexpr | operator bool () noexcept(noexcept(ranges::empty(std::declval< D< True > & >()))) |
view_interface & | operator= (view_interface &&)=default |
view_interface & | operator= (view_interface const &)=default |
view_interface (view_interface &&)=default | |
view_interface (view_interface const &)=default | |
Static Public Attributes | |
static constexpr index_type | extent = N |
Additional Inherited Members | |
Protected Types inherited from ranges::view_interface< span< T, dynamic_extent >,(dynamic_extent==dynamic_extent ? finite :static_cast< cardinality >(dynamic_extent))> | |
using | D = meta::invoke< detail::dependent_< B >, span< T, dynamic_extent > > |
Protected Member Functions inherited from ranges::view_interface< span< T, dynamic_extent >,(dynamic_extent==dynamic_extent ? finite :static_cast< cardinality >(dynamic_extent))> | |
constexpr span< T, dynamic_extent > const & | derived () const noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
constexpr span< T, dynamic_extent > & | derived () noexcept |