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

来自cppreference.com
< cpp‎ | ranges‎ | filter view
 
 
范围库
范围访问
范围转换器
(C++23)
范围原语



悬垂迭代器处理
范围概念
视图

范围工厂
适配器
范围生成器
范围适配器对象
范围适配器闭包对象
辅助项
 
 
class /*sentinel*/; // 仅用于阐释
(C++20 起)

底层 view 类型(V)不满足 common_rangefilter_view::end 的返回类型。

名称 sentinel 仅用于阐释目的。

数据成员

sentinel 的典型实现仅保有一个非静态数据成员:底层 view 的哨位(此处示为 end_ ,仅用于阐释)。

成员函数

(构造函数)
(C++20)
构造哨位
(公开成员函数)
base
(C++20)
返回底层哨位
(公开成员函数)

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==
(C++20)
比较底层迭代器与底层哨位
(函数)

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 的底层迭代器。

!= 运算符从 == 运算符合成

此函数对通常无限定有限定查找不可见,而只能在 std::ranges::filter_view::sentinel 为参数的关联类时由实参依赖查找找到。