C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- std::ranges::begin
- std::ranges::cbegin
- std::ranges::end
- std::ranges::cend
- std::ranges::crbegin
- std::ranges::crend
- std::ranges::ssize
- std::ranges::data
- std::ranges::borrowed_range, std::ranges::enable_borrowed_range
- std::ranges::view, std::ranges::enable_view, std::ranges::view_base
- std::ranges::cdata
- 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
- std::ranges::dangling
- std::ranges::borrowed_iterator_t, std::ranges::borrowed_subrange_t
- std::ranges::range
- std::ranges::sized_range, std::ranges::disable_sized_range
- std::ranges::common_range
- std::ranges::viewable_range
- std::ranges::input_range
- std::ranges::output_range
- std::ranges::forward_range
- std::ranges::bidirectional_range
- std::ranges::random_access_range
- std::ranges::contiguous_range
- std::ranges::subrange
- 半正则包装 (C++20)
- std::ranges::views::empty, std::ranges::empty_view
- std::ranges::views::iota, std::ranges::iota_view
- std::ranges::views::counted
- std::ranges::views::all_t, std::ranges::views::all
- std::ranges::ref_view
- std::ranges::views::transform, std::ranges::transform_view
- std::ranges::views::reverse, std::ranges::reverse_view
- std::ranges::views::filter, std::ranges::filter_view
- 注释
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >范围库 (C++20) > std::ranges::ref_view
std::ranges::ref_view
定义于头文件 <ranges>
|
||
template<ranges::range R> requires std::is_object_v<R> |
(C++20 起) | |
ref_view
是某个其他 range 的元素的 view 。它包装到该 range
的引用。
辅助模板
template<class T> inline constexpr bool enable_borrowed_range<ranges::ref_view<T>> = true; |
||
std::ranges::enable_borrowed_range 的此特化使得 ref_view
满足 borrowed_range 。
数据成员
std::ranges::ref_view::r_
R* r_ = nullptr; /* exposition-only */ |
||
指向被引用范围的指针
成员函数
std::ranges::ref_view::ref_view
constexpr ref_view() noexcept = default; |
(1) | |
template<__NotSameAs<ref_view> T> requires std::convertible_to<T, R&> && requires { _FUN(std::declval<T>()); } |
(2) | |
名称 __NotSameAs
与 _FUN
仅为说明。 __NotSameAs<T, U>
当且仅当 !std::same_as<std::remove_cvref_t<T>, std::remove_cvref_t<U>> 才得到满足。函数 _FUN
声明为 void _FUN(R&); void _FUN(R&&) = delete; 。
参数
t | - | 要引用的范围 |
std::ranges::rev_view::base
constexpr R& base() const; |
||
等价于 return *r_;
std::ranges::ref_view::begin
constexpr ranges::iterator_t<R> begin() const; |
||
等价于 return ranges::begin(*r_);
std::ranges::ref_view::end
constexpr ranges::sentinel_t<R> end() const; |
||
等价于 return ranges::end(*r_);
std::ranges::ref_view::empty
constexpr bool empty() const requires requires { ranges::empty(*r_); }; |
||
等价于 return ranges::empty(*r_);
std::ranges::ref_view::size
constexpr auto size() const requires ranges::sized_range<R> |
||
std::ranges::ref_view::data
constexpr auto data() const requires ranges::contiguous_range<R> |
||
推导指引
template<class R> ref_view(R&) -> ref_view<R>; |
||
示例
本节未完成 原因:暂无示例 |
参阅
(C++11) |
可复制构造 (CopyConstructible) 且可复制赋值 (CopyAssignable) 的引用包装器 (类模板) |
包含 range 的所有元素的 view (别名模板) (范围适配器对象) |