命名空间
变体
操作

std::ranges::filter_view<V,Pred>::sentinel

来自 cppreference.cn
< cpp‎ | ranges‎ | filter view
 
 
范围库 (Ranges library)
范围适配器 (Range adaptors)
 
 
class /*sentinel*/;
(C++20 起)
(仅作说明*)

当底层 view V 不满足 common_range 模型时,filter_view::end 的返回类型。

目录

[编辑] 数据成员

成员 定义
V end_ (私有) 底层 view 的哨兵
(仅用于阐释的成员对象*)

[编辑] 成员函数

构造一个哨位
(公开成员函数)
返回底层哨兵
(公开成员函数)

std::ranges::filter_view::sentinel::sentinel

/*sentinel*/() = default;
(1) (C++20 起)
constexpr explicit /*sentinel*/( filter_view& parent );
(2) (C++20 起)
1) 通过其默认成员初始化器 (= ranges::sentinel_t<V>()) 对 end_ 进行值初始化。
2)ranges::end(parent.base_) 初始化 end_

std::ranges::filter_view::sentinel::base

constexpr ranges::sentinel_t<V> base() const;
(C++20 起)

等价于 return end_;

[编辑] 非成员函数

比较底层迭代器和底层哨兵
(函数)

operator==(std::ranges::filter_view::iterator, std::ranges::filter_view::sentinel)

friend constexpr bool operator==( const /*iterator*/& x,
                                  const /*sentinel*/& y );
(C++20 起)

等价于 return x.current_ == y.end_;,其中 current_ 是包装在 filter_view::iterator 中的底层迭代器。

!= 运算符由 operator== 合成

此函数对于普通 非限定限定查找 不可见,只有当 std::ranges::filter_view::sentinel 是参数的关联类时,才能通过 实参依赖查找 找到。