Namespaces
Variants

std::ranges::elements_view<V,N>::iterator

ja.cppreference.net より
 
 
範囲ライブラリ
範囲アダプタ
 
 
template< bool Const >
class /*iterator*/;
(説明専用*)

の戻り値型、および、基盤となるビューがelements_view::beginである場合のelements_view::endの戻り値型。 common_range

型/*iterator*/<true>は const 修飾されたオーバーロードによって返されます。型/*iterator*/<false>は非 const 修飾されたオーバーロードによって返されます。

メンバ型

メンバ 定義
Base (プライベート) maybe-const <Const, V>
(説明専用メンバ型*)
iterator_concept 意味:
  • std::random_access_iterator_tag(Base が random_access_range のモデルである場合)。そうでない場合、
  • std::bidirectional_iterator_tag(Base が bidirectional_range のモデルである場合)。そうでない場合、
  • std::forward_iterator_tag(Base が forward_range のモデルである場合)。そうでない場合、
  • std::input_iterator_tag。
iterator_category
(条件付きで存在)
Base が forward_range のモデルでない場合は定義されません。そうでない場合、
  • std::input_iterator_tag(std::get<N>(*current_) が右辺値の場合)。そうでない場合、C を型 std::iterator_traits<std::iterator_t<Base>>::iterator_category とします。
  • std::random_access_iterator_tag(C が std::derived_from<std::random_access_iterator_tag> のモデルである場合)。そうでない場合、
  • C。
value_type std::remove_cvref_t<std::tuple_element_t<N, ranges::range_value_t<Base>>>
difference_type ranges::range_difference_t<Base>

データメンバ

メンバ 説明
ranges::iterator_t<Base> current_ (private) 元のシーケンスの現在の要素へのイテレータ
(説明専用メンバオブジェクト*)

メンバー関数

イテレータを構築する
(public member function)
基となるイテレータを返す
(public member function)
N th 番目のタプル要素にアクセスする
(public member function)
インデックスによる要素へのアクセス
(public member function)
基となるイテレータを進めるまたは戻す
(public member function)

非メンバー関数

基底となるイテレータを比較する
(関数)
イテレータ演算を実行する
(関数)

不具合報告

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

DR 適用対象 公開時の動作 正しい動作
P2259R1 C++20 member iterator_category は常に定義される Base が forward_range をモデル化する場合のみ定義される
LWG 3555 C++20 iterator_concept の定義がconstを無視する constを考慮するように修正

関連項目

(C++20)
ranges::transform_view::begin の戻り値型、および基盤となるビューが common_range である場合の ranges::transform_view::end の戻り値型
(非公開メンバークラステンプレート)