namespace std::ranges {
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred>
requires view<V> && is_object_v<Pred>
class filter_view<V, Pred>::iterator { …… };
}
概要
filter_view
のイテレータ。
このクラスの名前は規定されておらず、振る舞いのみが規定されている。
このクラスの型を取得したい場合、iterator_t
を使用できる。
このイテレータを通じて値を書き換える場合、その結果が述語の条件を満たさない場合は未定義動作となる。
メンバ変数
名前 | 説明 | 対応バージョン |
---|---|---|
iterator_t<V> current_ = iterator_t<V>(); |
元のイテレータ(説明専用) | C++20 |
filter_view* parent_ = nullptr; |
参照先のRange(説明専用) | C++20 |
メンバ関数
名前 | 説明 | 対応バージョン |
---|---|---|
(constructor) |
コンストラクタ | C++20 |
base |
元のイテレータを取得する | C++20 |
operator* |
間接参照演算子 | C++20 |
operator-> |
メンバアクセス演算子 | C++20 |
operator++ |
イテレータをインクリメントする | C++20 |
operator-- |
イテレータをデクリメントする | C++20 |
メンバ型
名前 | 説明 | 対応バージョン |
---|---|---|
iterator_concept |
イテレータコンセプト | C++20 |
iterator_category |
イテレータカテゴリ | C++20 |
value_type |
range_value_t<V> |
C++20 |
difference_type |
range_difference_t<V> |
C++20 |
非メンバ(Hidden friends)関数
名前 | 説明 | 対応バージョン |
---|---|---|
iter_move |
イテレータの要素の移動 | C++20 |
iter_swap |
イテレータの要素の交換 | C++20 |
比較演算子
名前 | 説明 | 対応バージョン |
---|---|---|
operator== |
等値比較 | C++20 |
operator!= |
非等値比較 (== により使用可能) |
C++20 |
バージョン
言語
- C++20
処理系
- Clang: 13.0.0 ✅
- GCC: 10.1.0 ✅
- ICC: ?
- Visual C++: 2019 Update 10 ✅