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
をモデル化する場合である。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
先頭を指すイテレータを返す
(公開メンバ関数) |
|
|
(C++20)
|
範囲の終端を示すセンチネルを返す
(カスタマイゼーションポイントオブジェクト) |