std::ranges::concat_view<Views...>::iterator<Const>::operator++,--,+=,-=

来自cppreference.com
< cpp‎ | ranges‎ | concat view‎ | iterator
 
 
范围库
范围适配器
 
 
constexpr /*iterator*/& operator++();
(1) (C++26 起)
constexpr void operator++( int );
(2) (C++26 起)
constexpr /*iterator*/ operator++( int )
    requires /*all-forward*/<Const, Views...>;
(3) (C++26 起)
constexpr /*iterator*/& operator--()
    requires /*concat-is-bidirectional*/<Const, Views...>;
(4) (C++26 起)
constexpr /*iterator*/ operator--( int )
    requires /*concat-is-bidirectional*/<Const, Views...>;
(5) (C++26 起)
constexpr /*iterator*/& operator+=( difference_type n )
    requires /*concat-is-random-access*/<Const, Views...>;
(6) (C++26 起)
constexpr /*iterator*/& operator-=( difference_type n )
    requires /*concat-is-random-access*/<Const, Views...>;
(7) (C++26 起)

增加或减少迭代器

1) 等价于:++std::get<i>(it_); /*satisfy*/<i>(); return *this;,其中 iit_.index()
2) 等价于:++*this;
3) 等价于:auto tmp = *this; ++*this; return tmp;
4) 等价于:prev<i>();,其中 iit_.index()
5) 等价于:auto tmp = *this; --*this; return tmp;
6) 等价于:
if (n > 0)
    /*advance-fwd*/<i>(std::get<i>(it_) - ranges::begin(std::get<i>(parent_->views_)), n);
else if (n < 0)
    /*advance-bwd*/<i>(std::get<i>(it_) - ranges::begin(std::get<i>(parent_->views_)), -n);
return *this;
,
其中 iit_.index()
7) 等价于:*this += -n; return *this;.
1-5) 调用这些重载之前,it_.valueless_by_exception() 必须为 false。否则,其行为未定义。

参数

n - 相对于当前位置的位置

返回值

1,4,6,7) *this
2) (无)
3,5) 改动前制作的 *this 的副本

示例