命名空间
变体
操作

std::ranges::range_reference_t、std::ranges::range_const_reference_t、std::ranges::range_rvalue_reference_t、std::ranges::range_common_reference_t

来自 cppreference.com
< cpp‎ | ranges
 
 
范围库
范围原语
range_reference_trange_const_reference_trange_rvalue_reference_trange_common_reference_t
(C++23)
范围适配器
 
定义在头文件 <ranges>
template< ranges::range R >
using range_reference_t = std::iter_reference_t<ranges::iterator_t<R>>;
(1) (自 C++20 起)
template< ranges::range R >

using range_const_reference_t =

    std::iter_const_reference_t<ranges::iterator_t<R>>;
(2) (自 C++23 起)
template< ranges::range R >

using range_rvalue_reference_t =

    std::iter_rvalue_reference_t<ranges::iterator_t<R>>;
(3) (自 C++20 起)
template< ranges::range R >

using range_common_reference_t =

    std::iter_common_reference_t<ranges::iterator_t<R>>;
(4) (自 C++20 起)
1) 用于获取范围类型 R 的迭代器类型的引用类型。
2) 用于获取范围类型 R 的迭代器类型的常量引用类型。
3) 用于获取范围类型 R 的迭代器类型的右值引用类型。
4) 用于获取范围类型 R 的迭代器类型的通用引用类型。

[编辑] 模板参数

R - 一个 range 类型或一个 sized_range 类型

[编辑] 缺陷报告

以下改变行为的缺陷报告已追溯应用于之前发布的 C++ 标准。

DR 应用于 发布的行为 正确行为
LWG 3860 C++20 range_common_reference_t 丢失 添加

[编辑] 另请参见

计算迭代器的关联类型
(别名模板)[编辑]
获取范围的迭代器和哨兵类型
(别名模板)[编辑]
获取范围的大小、差异和值类型
(别名模板)[编辑]