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<

        std::conditional_t<Const, const Views, Views>>> && ...);
(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...> &&
              (std::three_way_comparable<ranges::iterator_t<

                   std::conditional_t<Const, const Views, 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 - 要比较的迭代器

返回值

比较的结果。

示例