Namespaces
Variants

operator+,- (ranges::enumerate_view:: iterator )

ja.cppreference.net より
 
 
レンジライブラリ
レンジアダプタ
 
 
friend constexpr /* iterator */
    operator+( const /* iterator */& i, difference_type n )
    requires ranges::random_access_range</* Base */>;
(1) (C++23 以降)
friend constexpr /* iterator */
    operator+( difference_type n, const /* iterator */& i )
    requires ranges::random_access_range</* Base */>;
(2) (C++23 以降)
friend constexpr /* iterator */
    operator-( const /* iterator */& i, difference_type n )
    requires ranges::random_access_range</* Base */>;
(3) (C++23 以降)
friend constexpr difference_type
    operator-( const /* iterator */& i, const /* iterator */& j ) noexcept;
(4) (C++23 以降)

イテレータ iterator 算術演算を実行するか、距離を計算します。

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 である

関連項目

基となるイテレータを進めるまたは戻す
(公開メンバ関数)