operator+,-(ranges::cartesian_product_view::iterator)
From cppreference.com
< cpp | ranges | cartesian product view | iterator
| friend constexpr /*iterator*/ operator+( const /*iterator*/& i, difference_type n ) |
(1) | (C++23から) |
| friend constexpr /*iterator*/ operator+( difference_type n, const /*iterator*/& i ) |
(2) | (C++23から) |
| friend constexpr /*iterator*/ operator-( const /*iterator*/& i, difference_type n ) |
(3) | (C++23から) |
| friend constexpr difference_type operator-( const /*iterator*/& i, const /*iterator*/& j ) |
(4) | (C++23から) |
| friend constexpr difference_type operator-( const /*iterator*/& i, std::default_sentinel_t ) |
(5) | (C++23から) |
| friend constexpr difference_type operator-( std::default_sentinel_t s, const /*iterator*/& i ) |
(6) | (C++23から) |
イテレータ演算を実行するか、距離を計算します。
current_ は基となるイテレータのタプルを表し、parent_ は cartesian_product_view への基となるポインタを表します。
1) 次と同等です: return /*iterator*/(i) += n;。
2) 次と同等です: return i + n;。
3) 次と同等です: return /*iterator*/(i) -= n;。
4) 次と同等です: return i.
distance_from(j.current_);。5) /*end-tuple*/ を、次のような
tuple の特殊化された型のオブジェクトとします。- std::get<0>(/*end-tuple*/) は ranges::end(std::get<0>(i.parent_->bases_)); と同じ値になります。
- std::get<N>(/*end-tuple*/) は、整数 1 ≤ N ≤ sizeof...(Vs) について、ranges::begin(std::get<N>(i.parent_->bases_)) と同じ値になります。
distance_from(/*end-tuple*/);。6) 次と同等です: return -(i - s);。
これらの関数は、通常の非修飾または修飾ルックアップからは見えず、cartesian_product_view::iterator<Const> が引数の関連クラスである場合にのみ、引数依存探索によって見つけることができます。
目次 |
[編集] パラメータ
| i, j | - | イテレータ |
| n | - | 現在の位置からの相対位置 |
| s | - | センチネル |
[編集] 戻り値
1,2) インクリメントされたイテレータ。
3) デクリメントされたイテレータ。
4) 与えられたイテレータ間の距離。
5,6) 指定されたイテレータとセンチネルの間の距離。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 基底イテレータを進めたり、後退させたりします。 (public member function) |