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

履歴 編集

concept
<memory>

# std::no-throw-input-range(C++20)

    namespace std {
      template <class R>
      concept no-throw-input-range =
        range<R> &&
        no-throw-input-iterator<iterator_t<R>> &&
        no-throw-sentinel<sentinel_t<R>, iterator_t<R>>;
    }

## 概要

`no-throw-input-range`は、`R`型のオブジェクトに対する以下の操作で例外を投げない入力Rangeの説明用コンセプトである：

- `std::ranges::begin`
- `std::ranges::end`

## 備考

- このコンセプトは、`std::vector<bool>`のような、プロキシオブジェクトを指すイテレータをもつ範囲を除外する

## 参照

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