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++ 标准。
| 缺陷报告 | 应用于 | 发布时行为 | 正确行为 |
|---|---|---|---|
| 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)
|
获取范围的引用类型
(别名模板) |