名稱空間
變體
操作

std::ranges::join_view<V>::iterator<Const>::operator++,--

來自 cppreference.com
< cpp‎ | ranges‎ | join_view‎ | iterator
 
 
範圍庫 (Ranges library)
範圍介面卡 (Range adaptors)
 
 
constexpr /*迭代器*/& operator++();
(1) (C++20 起)
constexpr void operator++( int );
(2) (C++20 起)
constexpr /*iterator*/ operator++( int )

    requires /*ref-is-glvalue*/ && ranges::forward_range<Base> &&

             ranges::forward_range<ranges::range_reference_t<Base>>;
(3) (C++20 起)
constexpr iterator& operator--()

    requires /*ref-is-glvalue*/ && ranges::bidirectional_range<Base> &&
             ranges::bidirectional_range<ranges::range_reference_t<Base>> &&

             ranges::common_range<ranges::range_reference_t<Base>>;
(4) (C++20 起)
constexpr /*iterator*/ operator--( int )

    requires /*ref-is-glvalue*/ && ranges::bidirectional_range<Base> &&
             ranges::bidirectional_range<ranges::range_reference_t<Base>> &&

             ranges::common_range<ranges::range_reference_t<Base>>;
(5) (C++20 起)

遞增或遞減底層迭代器。

inner_outer_ 為底層迭代器,parent_ 為指向父 ranges::join_view 的指標,常量 /*ref-is-glvalue*/std::is_reference_v<ranges::range_reference_t<Base>>

1)/*inner-range*/
  • *outer_,若 /*ref-is-glvalue*/ == true
  • *parent_->inner_ 否則。

等價於

auto&& inner_rng = /*inner-range*/;
if (++inner_ == ranges::end(inner_rng))
{
    ++outer_;
    satisfy();
}
return *this;
2) 等價於:++*this
3) 等效於
auto tmp = *this;
++*this;
return tmp;
4) 等價於
if (outer_ == ranges::end(parent_->base_))
    inner_ = ranges::end(*--outer_);
while (inner_ == ranges::begin(*outer_))
    inner_ = ranges::end(*--outer_);
--inner_;
return *this;
5) 等同於
auto tmp = *this;
--*this;
return tmp;

[編輯] 引數

(無)

[編輯] 返回值

1,4) *this
2) (無)
3,5) 更改前 *this 的副本。