Namespaces
Variants
Actions

std::ranges::stride_view<V>::end

From cppreference.com
< cpp‎ | ranges‎ | stride view
 
 
Ranges library
 
std::ranges::stride_view
stride_view::end
 
constexpr auto end() requires (!/*simple-view*/<V>);
(1) (since C++23)
constexpr auto end() const requires ranges::range <const V>
(2) (since C++23)

Returns an iterator or a sentinel representing the end of the stride_view.

Let base_ and stride_ be the underlying data members.

1) Let Const be defined as using Const = false; and Base as using Base = V;.
2) Let Const be defined as using Const = true; and Base as using Base = const V;.

Equivalent to:

if constexpr (ranges::common_range <Base> &&
 ranges::sized_range <Base> &&
 ranges::forward_range <Base>)
{
 auto missing = (stride_ - ranges::distance (base_) % stride_) % stride_;
 return iterator<Const>(this, ranges::end (base_), missing);
}
else if constexpr (ranges::common_range <Base> &&
 !ranges::bidirectional_range <Base>)
{
 return iterator<Const>(this, ranges::end (base_));
}
else
{
 return std::default_sentinel ;
}

[edit] Parameters

(none)

[edit] Return value

An iterator to the element following the last element, if the underlying view V models common_range. Otherwise, the std::default_sentinel which compares equal to the end iterator.

[edit] Notes

stride_view<V> models common_range whenever the underlying view V does.

[edit] Example

This section is incomplete
Reason: no example

[edit] See also

returns an iterator to the beginning
(public member function) [edit]
(C++20)
returns a sentinel indicating the end of a range
(customization point object)[edit]
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/stride_view/end&oldid=172650"

AltStyle によって変換されたページ (->オリジナル) /