std::ranges::iterator_t,std::ranges::const_iterator_t,std::ranges::sentinel_t,std::ranges::const_sentinel_t
来自 zh.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++ 标准。
| 缺陷报告 | 应用于 | 发布时行为 | 正确行为 |
|---|---|---|---|
| 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)
|
获取范围的引用类型
(别名模板) |