◐ Shell
clean mode source ↗

std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t - cppreference.com

来自cppreference.com

在标头 <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) 用于获得

range

类型 R 的哨位类型。

4) 用于获得

range

类型 R 的常量哨位类型。

模板形参

注解

iterator_t 能应用到非范围类型,例如未知边界数组。

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 3946 C++23 const_iterator_tconst_sentinel_t 分别与 ranges::cbeginranges::cend 的结果不一致 已修正

参阅