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

template<typename U , index_type M>
CPP_TEMPLATE_AUX_0 | b (requires equality_comparable_with< T, U >) bbbool operator
constexpr iterator | begin () const noexcept
template<typename Rng >
CPP_TEMPLATE_AUX_0 | c (requires(!same_as< span, uncvref_t< Rng >>) &&span_compatible_range< Rng, T > &&span_dynamic_conversion< Rng, N >) ccconstexpr span(Rng &&rng) noexcept(noexcept(ranges::data(rng), ranges::size(rng)))
template<typename Rng >
CPP_TEMPLATE_AUX_0 | c (requires(!same_as< span, uncvref_t< Rng >>) &&span_compatible_range< Rng, T > &&span_static_conversion< Rng, N >) ccconstexpr span(Rng &&rng) noexcept(noexcept(ranges::data(rng)))
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
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<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))>
CPP_TEMPLATE_AUX_0 | c (requires True &&(!detail::has_fixed_size_< Cardinality >) &&forward_range< D< True > const >) ccconstexpr 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.
CPP_TEMPLATE_AUX_0 | c (requires True &&(!detail::has_fixed_size_< Cardinality >) &&forward_range< D< True >>) ccconstexpr 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.
CPP_TEMPLATE_AUX_0 | c (requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >) &&sized_range< D< True > const >) ccconstexpr bool empty() const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0)))
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True >>) &&sized_range< D< True >>) ccconstexpr bool empty() noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0)))
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&(Cardinality< 0) &&sized_sentinel_for< sentinel_t< D< True > const >, iterator_t< D< True > const >> &&forward_range< D< True > const >) ccconstexpr detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&common_range< D< True > const > &&bidirectional_range< D< True > const >) ccconstexpr range_reference_t< D< True > const > back() const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&common_range< D< True >> &&bidirectional_range< D< True >>) ccconstexpr range_reference_t< D< True >> back()
| Access the last element in a range:
CPP_TEMPLATE_AUX_0 | c (requires True &&contiguous_iterator< iterator_t< D< True > const >>) ccconstexpr std
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&contiguous_iterator< iterator_t< D< True >>>) ccconstexpr std
| Returns a pointer to the block of memory containing the elements of a contiguous range:
CPP_TEMPLATE_AUX_0 | c (requires True &&forward_range< D< True > const >) ccconstexpr range_reference_t< D< True > const > front() const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&forward_range< D< True >>) ccconstexpr range_reference_t< D< True >> front()
| Access the first element in a range:
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True > & > &&sized_range< D< True > & >) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True > & >) ccconstexpr auto operator[](detail
| Python-ic slicing:
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True > & >) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True > const & > &&sized_range< D< True > const & >) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True > const & >) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True > const & >) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True >> &&sized_range< D< True >>) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True >>) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&input_range< D< True >>) ccconstexpr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&random_access_range< D< True > const > &&sized_range< D< True > const >) ccconstexpr range_reference_t< D< True > const > at(range_difference_t< D< True >> n) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&random_access_range< D< True > const >) ccconstexpr range_reference_t< D< True > const > operator[](range_difference_t< D< True >> n) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
CPP_TEMPLATE_AUX_0 | c (requires True &&random_access_range< D< True >> &&sized_range< D< True >>) ccconstexpr range_reference_t< D< True >> at(range_difference_t< D< True >> n)
| Returns a reference to the element at specified location pos, with bounds checking.
CPP_TEMPLATE_AUX_0 | c (requires True &&random_access_range< D< True >>) ccconstexpr range_reference_t< D< True >> operator[](range_difference_t< D< True >> n)
| Simple indexing:
| CPP_TEMPLATE_AUX_0 (requires True &&(Cardinality >=0)) static const expr std
| If the size of the range is known at compile-time and finite, return it.
| CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > & >||(input_range< D< True > & > &&sized_range< D< True > & >))) const expr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > & >||(input_range< D< True > & > &&sized_range< D< True > & >))) const expr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > const & >||(input_range< D< True > const & > &&sized_range< D< True > const & >))) const expr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > const & >||(input_range< D< True > const & > &&sized_range< D< True > const & >))) const expr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True >>||(input_range< D< True >> &&sized_range< D< True >>))) const expr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True >>||(input_range< D< True >> &&sized_range< D< True >>))) const expr auto operator[](detail
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| CPP_TEMPLATE_AUX_0 (requires True &&detail::can_empty_< D< True > const >) const expr explicit 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.
| CPP_TEMPLATE_AUX_0 (requires True &&detail::can_empty_< D< True >>) const expr explicit operator bool() noexcept(noexcept(ranges::empty(std::declval< D< True > & >())))
constexpr auto | empty () const noexcept -> bool requires(detail::has_fixed_size_< Cardinality >)
| Test whether a range can be empty:
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