Namespaces
Variants

std::ranges::cartesian_product_view<先頭、Vs...>::iterator<Const>::operator++,--,+=,-=

ja.cppreference.net より
 
 
Ranges ライブラリ
範囲アダプタ
 
 
constexpr /*iterator*/& operator++();
(1) (C++23以降)
constexpr void operator++( int );
(2) (C++23以降)
constexpr /*iterator*/ operator++( int )
    requires ranges::forward_range</*maybe-const*/<Const, First>>;
(3) (C++23以降)
constexpr /*iterator*/& operator--()
    requires /*cartesian-product-is-bidirectional*/<Const, First, Vs...>;
(4) (C++23以降)
constexpr /*iterator*/ operator--( int )
    requires /*cartesian-product-is-bidirectional*/<Const, First, Vs...>;
(5) (C++23以降)
constexpr /*iterator*/& operator+=( difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(6) (C++23以降)
constexpr /*iterator*/& operator-=( difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(7) (C++23以降)

イテレータをインクリメントまたはデクリメントします。

current_ をイテレータの内部タプル、parent_ を cartesian_product_view への内部ポインタとします。

1) next(); return *this;
と等価。 2)++*this;
と等価。 auto tmp = *this; ++*this; return tmp;
3) prev(); return *this;
と等価。 4)auto tmp = *this; --*this; return tmp;
と等価。 *this5)ret ret の値を
  • に設定します。ここで n > 0 は次の通りです: *thisnext の場合、n 回呼び出された
  • の値。ただし、n < 0 を満たす場合に限る。そうでなければ、 *thisprev の場合、-n 回呼び出された
  • の値。ただし、*this を満たす場合に限る。そうでなければ、
呼び出し前の n の値。 [ranges::distance(*this, ranges::begin(*parent_)), ranges::distance(*this, ranges::end(*parent_))) が範囲
内にない場合、動作は未定義です。 7)*this += -n; return *this;

パラメータ

n - 現在位置からの相対位置

戻り値

1,4,6,7) * this
2) (なし)
3,5) 変更前に行われた * this のコピー。

計算量

6) 定数。

例

関連項目

イテレータ演算を実行する
(関数)