最終更新日時: 2026年02月08日 18時00分28秒 (JST)
yoh が更新

履歴 編集

concept
<memory>

# std::no-throw-sentinel(C++20)

    namespace std {
      template <class S, class I>
      concept no-throw-sentinel = sentinel_for<S, I>;
    }

## 概要

`no-throw-sentinel`は、以下の操作で例外を投げない、型`S`がイテレータ型`I`の番兵（sentinel）型であることを表す説明用コンセプトである。

- コピー構築
- ムーブ構築
- コピー代入
- ムーブ代入
- 比較

## 備考

- このコンセプトは`sentinel_for`のいくつかの操作で例外を投げることを許可する
- このコンセプトは、`std::vector<bool>`のイテレータのような、プロキシオブジェクトを指すイテレータを除外する

## 参照

- P0896R4 The One Ranges Proposal (was Merging the Ranges TS)