std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t
ja.cppreference.net より
| ヘッダ <ranges>
|
||
template< class T >
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
|
で定義 (1) | (C++20以降) |
template< ranges::range R >
using const_iterator_t = decltype(ranges::cbegin(std::declval<R&>()));
|
(2) | (C++23以降) |
template< ranges::range R >
using sentinel_t = decltype(ranges::end(std::declval<R&>()));
|
(3) | (C++20以降) |
template< ranges::range R >
using const_sentinel_t = decltype(ranges::cend(std::declval<R&>()));
|
(4) | (C++23以降) |
1) 型
Tのイテレータ型を取得するために使用されます。3) 範囲型
Rの番兵型を取得するために使用されます。4) 範囲型
Rの定数番兵型を取得するために使用されます。テンプレートパラメータ
| T | - | std::ranges::begin で使用可能な型 |
| R | - |
range
型または
sized_range
型
|
注記
iterator_t
は非範囲型にも適用可能です。例えば、境界が不明な配列など。
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 3946 | C++23 |
const_iterator_t
と
const_sentinel_t
が
それぞれ
ranges::cbegin
と
ranges::cend
の結果と
一貫性がなかった |
調整された |
関連項目
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
イテレータの関連型を計算する
(エイリアステンプレート) |
|
(C++20)
(C++20)
(C++20)
|
範囲のサイズ、差分、および値の型を取得する
(エイリアステンプレート) |
|
(C++20)
(C++23)
(C++20)
(C++20)
|
範囲の参照型を取得する
(エイリアステンプレート) |