std::ranges::transform_view<V,F>::iterator
From cppreference.com
< cpp | ranges | transform view
| template< bool Const > class /*iterator*/ |
(C++20以降) (説明用*) |
|
transform_view::begin、および基盤となるビューが common_range である場合の transform_view::end の戻り値の型です。
Constがtrueの場合、型/*iterator*/<true>が返されます。Constがfalseの場合、型/*iterator*/<false>が返されます。
目次 |
[編集] メンバ型
| メンバ型 | 定義 |
Parent (private) |
maybe_const <Const, ranges::transform_view<V, F>>(説明専用メンバ型*) |
Base (private) |
maybe_const <Const, V>(説明専用メンバ型*) |
iterator_concept
|
|
iterator_category( Base がモデルとする場合にのみ存在します。forward_range)
|
MCF を maybe_const <Const, F> とします。
それ以外の場合、
|
value_type
|
MCF は maybe_const <Const, F> を意味します。 |
difference_type
|
ranges::range_difference_t<Base> |
[編集] データメンバ
| メンバ名 | 定義 |
current_ (private) |
(おそらく const 修飾された) V へのイテレータ。(説明用のメンバオブジェクト*) |
parent_ (private) |
親の transform_view へのポインタ。(説明用のメンバオブジェクト*) |
[編集] メンバ関数
| イテレータを構築する (public member function) | |
| 基盤となるイテレータを返します。 (public member function) | |
| 変換された要素にアクセスします。 (public member function) | |
| インデックスで要素にアクセスする (public member function) | |
| 基底イテレータを進めたり、後退させたりします。 (public member function) |
[編集] 非メンバ関数
| 基底イテレータを比較する (関数) | |
| (C++20) |
イテレータの算術演算を実行します。 (関数) |
| (C++20) |
変換された要素への rvalue 参照を取得します。 (関数) |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| P2259R1 | C++20 | メンバ iterator_category は常に定義されます。 |
Base が forward_range をモデルとする場合にのみ定義されます。 |
| LWG 3555 | C++20 | iterator_concept の定義は const を無視します。 |
考慮事項として挙げられました。 |
| LWG 3798 | C++20 | 変換結果が rvalue 参照の場合、iterator_category は input-only です。 |
より強いカテゴリを持つ可能性があります。 |