Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
定义于头文件 <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) 用于获取 range 类型 R 的常量迭代器类型。
3) 用于获取范围类型 R 的哨兵类型。
4) 用于获取范围类型 R 的常量哨兵类型。

目录

模板参数

T - 可用于 std::ranges::begin 的类型
R - range 类型或 sized_range 类型

注释

iterator_t 可应用于非范围类型,例如未知边界的数组。

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

缺陷报告 应用于 发布时行为 正确行为
LWG 3946 C++23 const_iterator_t const_sentinel_t 分别
ranges::cbegin ranges::cend 的结果不一致
已调整

参见

计算迭代器的关联类型
(别名模板)
获取范围的大小、差异和值类型
(别名模板)
获取范围的引用类型
(别名模板)