Loading...
Searching...
No Matches
ranges::span< T, N > Struct Template Reference
Views
Inheritance diagram for ranges::span< T, N >:

## 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< Derived, Cardinality >
constexpr auto | empty () const noexcept -> bool
| Test whether a range can be empty:
template<bool True = true> requires True
&&!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.
template<bool True = true> requires True

&&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.
template<bool True = true> requires True
&&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.
template<bool True = true> requires True
&&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< Derived, Cardinality >
template<bool B>
using | D = meta::invoke< detail::dependent_< B >, Derived >
Protected Member Functions inherited from ranges::view_interface< Derived, Cardinality >
constexpr Derived 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 Derived & | derived () noexcept