operator+,-(ranges::enumerate_view::iterator)
From cppreference.com
< cpp | ranges | enumerate 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 ) noexcept; |
(4) | (C++23から) |
イテレータの算術演算を実行するか、距離を計算します。
pos_ は基底のインデックスであり、Base は基底ビューの(const修飾されている可能性のある)型です。
以下と等価です。
1) auto temp = i; temp += n; return temp;
2) return i + n;
3) auto temp = i; temp -= n; return temp;
4) return i.pos_ - j.pos_;
これらの関数は、通常の非修飾または修飾ルックアップからは見えず、enumerate_view::iterator<Const> が引数の関連クラスである場合にのみ引数依存名前探索によって見つけることができます。
目次 |
[編集] パラメータ
| i, j | - | イテレータ |
| n | - | 現在の位置からの相対位置 |
[編集] 戻り値
1,2) インクリメントされたイテレータ。
3) デクリメントされたイテレータ。
4) 与えられたイテレータ間の距離。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3912 | C++23 | オーバーロード (4) は noexcept ではありませんでした。 | それは noexcept です。 |
[編集] 関連項目
| 基底イテレータを進めたり、後退させたりします。 (public member function) |