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

位置:首页 > 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 的哨位类型。

4) 用于获得范围类型 R 的迭代器类型的差类型。

5) 用于获得范围类型 R 的迭代器类型的值类型。

6) 用于获得范围类型 R 的迭代器类型的引用类型。

7) 用于获得范围类型 R 的迭代器类型的右值引用类型。

模板形参

注解

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

参阅