最終更新日時: 2025年05月29日 17時39分27秒 (JST)
Akira Takahashi が更新

履歴 編集

class template
<ranges>

# std::ranges::filter_view::sentinel(C++20)

    namespace std::ranges {
      template<input_range V, indirect_unary_predicate<sentinel_t<V>> Pred>
        requires view<V> && is_object_v<Pred>
      class filter_view<V, Pred>::sentinel { …… };
    }

## 概要

`filter_view`が`common_range`でない場合のみ使用される番兵。

このクラスの名前は規定されておらず、振る舞いのみが規定されている。

このクラスの型を取得したい場合、`sentinel_t`を使用できる。

## メンバ変数

名前 | 説明 | 対応バージョン
--- | --- | ---
`sentinel_t<V> end_ = sentinel_t<V>();` | 元の番兵(説明専用) | C++20

## メンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ | C++20
`base` | 元の番兵を取得する | C++20

## 非メンバ（Hidden friends）関数

### 比較演算子

名前 | 説明 | 対応バージョン
--- | --- | ---
`operator==` | 等値比較 | C++20
`operator!=` | 非等値比較 (`==`により使用可能) | C++20

## バージョン

### 言語

- C++20

### 処理系

- Clang: 13.0.0 ✅
- GCC: 10.1.0 ✅
- ICC: ?
- Visual C++: 2019 Update 10 ✅

## 参照

- N4861 24.7.4 Filter view
- N4950 26.7.8 Filter view