Namespaces
Variants

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のイテレータ型を取得するために使用されます。
2) rangeRの定数イテレータ型を取得するために使用されます。
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 の結果と
一貫性がなかった
調整された

関連項目

イテレータの関連型を計算する
(エイリアステンプレート)
範囲のサイズ、差分、および値の型を取得する
(エイリアステンプレート)
範囲の参照型を取得する
(エイリアステンプレート)