C++ 参考手册

位置:首页 > C++ 参考手册 >范围库 (C++20) > std::ranges::iterator_t, std::ranges::sentinel_t, std::ranges::range_size_t, std::ranges::range_difference_t, std::ranges::range_value_t, std::ranges::range_reference_t, std::ranges::range_rvalue_reference_t

定义于头文件 <ranges>
template <class T>
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
(1) (C++20 起)
template <ranges::range R>
using sentinel_t = decltype(ranges::end(std::declval<T&>()));
(2) (C++20 起)
template <ranges::sized_range R>
using range_size_t = decltype(ranges::size(std::declval<R&>()));
(3) (C++20 起)
template <ranges::range R>
using range_difference_t = std::iter_difference_t<ranges::iterator_t<R>>;
(4) (C++20 起)
template <ranges::range R>
using range_value_t = std::iter_value_t<ranges::iterator_t<R>>;
(5) (C++20 起)
template <ranges::range R>
using range_reference_t = std::iter_reference_t<ranges::iterator_t<R>>;
(6) (C++20 起)
template <ranges::range R>

using range_rvalue_reference_t =

    std::iter_rvalue_reference_t<ranges::iterator_t<R>>;
(7) (C++20 起)
1) 用于获得 T 的迭代器类型。
2) 用于获得 range 类型 R 的哨位类型。
3) 用于获得 sized_range 类型 R 的大小类型。
4) 用于获得范围类型 R 的迭代器类型的差类型。
5) 用于获得范围类型 R 的迭代器类型的值类型。
6) 用于获得范围类型 R 的迭代器类型的引用类型。
7) 用于获得范围类型 R 的迭代器类型的右值引用类型。

模板形参

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

注解

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

参阅

计算迭代器的关联类型
(别名模板)