命名空间
变体
操作

operator==,<,>,<=,>=,<=>(ranges::concat_view::iterator)

来自 cppreference.cn
< cpp‎ | ranges‎ | concat view‎ | iterator
 
 
范围库 (Ranges library)
范围适配器 (Range adaptors)
 
 
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 起)

比较迭代器与另一个迭代器或一个哨兵。

1) 比较迭代器与一个哨兵。
如果 x.it_ .valueless_by_exception()true,则行为未定义。
2-7) 比较两个迭代器。!= 运算符从 operator== 合成
如果 x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception()true,则行为未定义。

这些函数对普通的非限定限定查找不可见,只能通过参数依赖查找std::ranges::concat_view::iterator <Const> 为参数的关联类时找到。

[编辑] 参数

x, y - 要比较的迭代器

[编辑] 返回值

1)

x.it_ .index() == (sizeof...(Views) - 1) &&
    x.get-iter <sizeof...(Views) - 1>() == x.get-end <sizeof...(Views) - 1>()

2) x.it_ == y.it_
3) x.it_ < y.it_
4) x.it_ > y.it_
5) x.it_ <= y.it_
6) x.it_ >= y.it_
7) x.it_ <=> y.it_

[编辑] 示例