std::ranges::chunk_view<V>::end
From cppreference.com
< cpp | ranges | chunk view
V は input_range のみモデルとする |
||
| constexpr std::default_sentinel_t end() const noexcept; |
(1) | (C++23から) |
V は forward_range をモデルとする |
||
| constexpr auto end() requires (!__simple_view<V>); |
(2) | (C++23から) |
| constexpr auto end() const requires ranges::forward_range<const V>; |
(3) | (C++23から) |
イテレータ、または std::default_sentinel を返します。これは、chunk_view の末尾イテレータと等価です。
2,3) V が
forward_range をモデルとする場合に利用可能です。base_ を基底となるアダプトされたビュー、n_ を格納されているチャンクサイズ、iterator をネストされたイテレータクラスとします。2) 同値:
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) 以下と同等です
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;
[編集] 戻り値
上記で説明されているように、chunk_view の末尾を表すイテレータまたはセンチネル。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 先頭へのイテレータを返す (public メンバ関数) | |
| (C++20) |
rangeの終端を示す番兵を返す (カスタマイゼーションポイントオブジェクト) |