Namespaces
Variants

std::ranges::zip_view<ビュー...>::end

From ja.cppreference.net
 
 
レンジライブラリ
レンジアダプタ
 
 
constexpr auto end()
    requires (!(/*simple-view*/<Views> && ...);
(1) (C++23以上)
constexpr auto end() const
    requires (ranges::range<const Views> && ...);
(2) (C++23以上)
template< class... Rs >
concept /*zip-is-common*/ =
    (sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
    ||
    (!(ranges::bidirectional_range<Rs> && ...) && (ranges::common_range<Rs> && ...))
    ||
    ((ranges::random_access_range<Rs> && ...) && (ranges::sized_range<Rs> && ...));
(3) (説明専用*)

このビューの終端イテレータと等値比較されるiteratorまたはsentinelを返します。zip_view

基底となるビューのタプルをviews_とします。

1) 以下と等価です:
  • return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
もし/*zip-is-common*/<Views...>がfalseに評価される場合。そうでなければ、
  • return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
もし(ranges::random_access_range<Views> && ...)がtrueに評価される場合。そうでなければ、
  • return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));。
2) 以下と等価です:
  • return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
もし/*zip-is-common*/<const Views...>がfalseに評価される場合。そうでなければ、
  • return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
もしranges::random_access_range<const Views> && ...がtrueに評価される場合。そうでなければ、
  • return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));。

パラメータ

(なし)

戻り値

zip_viewの終端を表すイテレータまたはセンチネル。 前述の通りです。

注記

ranges:: range < const ranges:: zip_view < Views... >> がモデル化されるのは、かつその場合に限り、 Views... 内のすべての型 Vi について、 const Vi が range をモデル化する場合である。

例

関連項目

先頭を指すイテレータを返す
(公開メンバ関数)
範囲の終端を示すセンチネルを返す
(カスタマイゼーションポイントオブジェクト)