operator==,<,>,<=,>=,<=>(ranges::concat_view::iterator)
来自cppreference.com
< cpp | ranges | concat view | iterator
friend constexpr bool operator==( const /*iterator*/& x, std::default_sentinel_t ); |
(1) | (C++26 起) |
friend constexpr bool operator==( const /*iterator*/& x, const /*iterator*/& y ) requires (std::equality_comparable<ranges::iterator_t< |
(2) | (C++26 起) |
friend constexpr bool operator<( const /*iterator*/& x, const /*iterator*/& y ) requires /*all-random-access*/<Const, Views...>; |
(3) | (C++26 起) |
friend constexpr bool operator>( const /*iterator*/& x, const /*iterator*/& y ) requires /*all-random-access*/<Const, Views...>; |
(4) | (C++26 起) |
friend constexpr bool operator<=( const /*iterator*/& x, const /*iterator*/& y ) requires /*all-random-access*/<Const, Views...>; |
(5) | (C++26 起) |
friend constexpr bool operator>=( const /*iterator*/& x, const /*iterator*/& y ) requires /*all-random-access*/<Const, Views...>; |
(6) | (C++26 起) |
friend constexpr auto operator<=>( const /*iterator*/& x, const /*iterator*/& y ) requires (/*all-random-access*/<Const, Views...> && |
(7) | (C++26 起) |
比较底层迭代器或比较底层迭代器与 std::default_sentinel。
令 it_
持有底层迭代器,并令 parent_
持有指向父 concat_view 的底层指针。
1) 等价于:
调用这个运算符之前,
constexpr auto last_idx = sizeof...(Views) - 1; return x.it_.index() == last_idx && std::get<last_idx>(x.it_) == ranges::end(std::get<last_idx>(x.parent_->views_));
x.
it_
.
valueless_by_exception() 必须为 false。否则,其行为未定义。2) 等价于:return x.it_ == y.it_;。
3) 等价于:return x.it_ < y.it_;。
4) 等价于:return x.it_ > y.it_;。
5) 等价于:return x.it_ <= y.it_;。
6) 等价于:return x.it_ >= y.it_;。
7) 等价于:return x.it_ <=> y.it_;。
2-7) 调用这些运算符之前,x.it_.valueless_by_exception() 和 y.it_.valueless_by_exception() 必须都为 false。否则,其行为未定义。
这些函数对常规的无限定或有限定查找不可见,而只能在 std::ranges::concat_view::iterator<Const>
为实参的关联类时由实参依赖查找找到。
!=
运算符从 operator==
运算符合成。
参数
x, y | - | 要比较的迭代器 |
返回值
比较的结果。
示例
本节未完成 原因:暂无示例 |