名前空間
変種
操作

std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t

From cppreference.com
< cpp‎ | ranges
 
 
Rangesライブラリ
Rangeアダプタ
 
ヘッダ <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 型のイテレータ型を取得するために使用されます。
2) rangeR の定数イテレータ型を取得するために使用されます。
3) 範囲型 R のセンチネル型を取得するために使用されます。
4) 範囲型 R の定数センチネル型を取得するために使用されます。

目次

[編集] テンプレートパラメータ

T - std::ranges::begin で使用できる型
R - a range 型または sized_range

[編集] ノート

iterator_t は、境界が不明な配列など、範囲型でない型にも適用できます。

[編集] 欠陥報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 3946 C++23 const_iterator_tconst_sentinel_t は、それぞれ ranges::cbeginranges::cend の結果と一貫性がありませんでした。
(上記の問題が)修正されました。
(修正されました)

[編集] 関連項目

イテレータの関連型を計算する
(エイリアステンプレート)[編集]
rangeのサイズ型、差分型、値型を取得する
(エイリアステンプレート)[編集]
rangeの参照型を取得する
(エイリアステンプレート)[編集]
English 日本語 中文(简体) 中文(繁體)