std::ranges::cartesian_product_view<First, Vs...>::iterator<Const>::operator++,--,+=,-=
From cppreference.com
< cpp | ranges | cartesian product view | iterator
| 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) `ret` の値を `*this` に設定します。`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) 定数。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| (C++23) |
イテレータの算術演算を実行します。 (関数) |