std::ranges...k_view::end(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… std::ranges::chunk_view::end πŸ’…

okay so this is the C++ Standard Libary page for std::ranges::chunk_view::end(3) β€” bestie, we’re reading the actual manual together and I’m keeping every single deet. No cap. 🫢


πŸŽ€ NAME πŸŽ€

std::ranges::chunk_view::end β€” std::ranges::chunk_view::end


✨ Synopsis ✨

V models only input_range:

constexpr std::default_sentinel_t end() const noexcept;

(1) (since C++23)

V models forward_range:

constexpr auto end() requires (!__simple_view<V>);

(2) (since C++23)

constexpr auto end() const requires ranges::forward_range<const V>;

(3) (since C++23)

Returns an iterator or a std::default_sentinel that compares equal to the end iterator of the chunk_view.

  • (1) β€” Available only if V models input_range. Equivalent to: return std::default_sentinel.
  • (2) and (3) β€” Available if V models forward_range. Let base_ denote the underlying adapted view, n_ denote the stored chunk size, and iterator denote the nested iterator class.

(2) β€” Equivalent to:

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

(3) β€” Equivalent to:

if constexpr (ranges::common_range<const V> &&
       ranges::sized_range<const V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<true>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<const V> &&
       !ranges::bidirectional_range<const V>)
    return iterator<true>(this, ranges::end(base_));
else
    return std::default_sentinel;

πŸ’– Parameters πŸ’–

(none) β€” literally none, bestie 🫢


🌈 Return value 🌈

An iterator or sentinel representing the end of the chunk_view, as described above.


πŸ“ Example πŸ“

bestie, they really left us hanging 😭 the page says:

This section is incomplete
Reason: no example

No example, no cap. We’re not inventing one.


πŸ”₯ See also πŸ”₯

  • begin β€” returns an iterator to the beginning β€” (C++23) β€” (public member function)
  • ranges::end β€” returns a sentinel indicating the end of a range β€” (C++20) β€” (customization point object)

πŸ‘‘ Category πŸ‘‘

Category tag, exactly as written: * Todo no example


okay that’s the whole page, bestie β€” source/version energy: http://cppreference.com, 2024.06.10, page std::ranges...k_view::end(3). Mwah πŸ’–

πŸ“¦ where this page comes from