nothrow-input-range, nothrow-forward-range, nothrow-bidirectional-range, no-throw-input-range, nothrow-random-access-range, nothrow-sized-random-access-range
ja.cppreference.net より
template< class R >
concept /*nothrow-input-range*/ =
ranges::range<R> &&
/*nothrow-input-iterator*/<ranges::iterator_t<R>> &&
/*nothrow-sentinel-for*/<ranges::sentinel_t<R>, ranges::iterator_t<R>>;
|
(1) | (説明専用*) |
template< class R >
concept /*nothrow-forward-range*/ =
/*nothrow-input-range*/<R> &&
/*nothrow-forward-iterator*/<ranges::iterator_t<R>>;
|
(2) | (説明専用*) |
template< class R >
concept /*nothrow-bidirectional-range*/ =
/*nothrow-forward-range*/<R> &&
/*nothrow-bidirectional-iterator*/<ranges::iterator_t<R>>;
|
(3) | (C++26 から) (説明専用*) |
template< class R >
concept /*nothrow-random-access-range*/ =
/*nothrow-bidirectional-range*/<R> &&
/*nothrow-random-access-iterator*/<ranges::iterator_t<R>>;
|
(4) | (C++26 から) (説明専用*) |
template< class R >
concept /*nothrow-sized-random-access-range*/ =
/*nothrow-random-access-range*/<R> && ranges::sized_range<R>;
|
(5) | (C++26 から) (説明専用*) |
これらの説明専用コンセプトは、特殊化された <メモリ>アルゴリズムがレンジ上で要求する操作から例外が送出されないことを指定します。
/*nothrow-input-iterator*/, /*nothrow-forward-iterator*/, /*nothrow-bidirectional-iterator*/ および /*nothrow-random-access-iterator*/ の定義については、このページを参照してください。
意味要件
1) 型
R が nothrow-input-range をモデル化するのは、ranges::begin および ranges::end の呼び出しから型 R のオブジェクトに対して例外が送出されない場合のみです。5) 型
R が nothrow-sized-random-access-range をモデル化するのは、ranges::size の呼び出しから型 R のオブジェクトに対して例外が送出されない場合のみです。ノート
これらのコンセプトは、レンジ上の一部の操作が例外を送出することを許可します。
関連項目
(C++20) |
は、型がレンジである、つまり begin イテレータと end センチネル (コンセプト) を提供することを指定します |
(C++20) |
は、レンジが定数時間でそのサイズを知ることができることを指定します (コンセプト) |
(C++20)(C++23)(C++20)(C++23) |
レンジのイテレータ型とセンチネル型を取得します (エイリアステンプレート) |