Namespaces
Variants

std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: operator++,--,+=,-=

From cppreference.net
Ranges library
Range adaptors
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 ;
3) 次と同等 auto tmp = * this ; ++* this ; return tmp ;
4) 次と同等: prev ( ) ; return * this ;
5) 次と同等 auto tmp = * this ; --* this ; return tmp ;
6) * this の値を ret に設定する。ここで ret は以下の通り:
  • n > 0 の場合、 next n 回呼び出された場合の * this の値。それ以外の場合、
  • n < 0 の場合、 prev - n 回呼び出された場合の * this の値。それ以外の場合、
  • 呼び出し前の * 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) 定数。

関連項目

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