名前空間
変種
操作

std::ranges::chunk_view<V>::end

From cppreference.com
< cpp‎ | ranges‎ | chunk view
 
 
Rangesライブラリ
Rangeアダプタ
 
std::ranges::chunk_view
メンバ関数
chunk_view::end
input_range のクラス
推論補助
outer-iterator
outer-iterator::value_type
inner-iterator
 
Vinput_range のみモデルとする
constexpr std::default_sentinel_t end() const noexcept;
(1) (C++23から)
Vforward_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 の末尾イテレータと等価です。

1) Vinput_range をモデルとする場合にのみ利用可能です。return std::default_sentinel と同等です。
2,3) Vforward_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 メンバ関数) [編集]
rangeの終端を示す番兵を返す
(カスタマイゼーションポイントオブジェクト)[編集]
English 日本語 中文(简体) 中文(繁體)