std::ranges:: iterator_t, std::ranges:: const_iterator_t, std::ranges:: sentinel_t, std::ranges:: const_sentinel_t
From 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)
|
範囲の参照型を取得する
(エイリアステンプレート) |