Namespaces
Variants

std::ranges::enumerate_view<V>:: end

From cppreference.net
Ranges library
Range adaptors
constexpr auto end ( ) requires ( ! __simple_view < V > ) ;
(1) (C++23以降)
constexpr auto end ( ) const requires /*range-with-movable-references*/ < const V > ;
(2) (C++23以降)

enumerate_view の終端イテレータと等価比較される iterator または sentinel を返します。

base_ を基となるビューとします。

1) 同等:
if constexpr (ranges::forward_range<V> and 
              ranges::common_range<V>  and 
              ranges::sized_range<V>)
    return /*iterator*/<false>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<false>(ranges::end(base_));
2) 次と同等:
if constexpr (ranges::forward_range<const V> and 
              ranges::common_range<const V>  and 
              ranges::sized_range<const V>)
    return /*iterator*/<true>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<true>(ranges::end(base_));

目次

パラメータ

(なし)

戻り値

iterator または sentinel で、上記の通り enumerate_view の終端を表します。

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3919 C++23 ranges::distance はサイズ指定された共通
非前方基底範囲に対してUBを引き起こす可能性がある
そのような範囲に対してセンチネル型が返される

関連項目

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