operator+,-(ranges::elements_view::iterator)
From cppreference.com
< cpp | ranges | elements view | iterator
| friend constexpr /*iterator*/ operator+( const /*iterator*/& i, difference_type n ) requires ranges::random_access_range<Base>; |
(1) | (C++20以降) |
| friend constexpr /*iterator*/ operator+( difference_type n, const /*iterator*/& i ) requires ranges::random_access_range<Base>; |
(2) | (C++20以降) |
| friend constexpr /*iterator*/ operator-( const /*iterator*/& i, difference_type n ) requires ranges::random_access_range<Base>; |
(3) | (C++20以降) |
| friend constexpr difference_type operator-( const /*iterator*/& x, const /*iterator*/& y ) |
(4) | (C++20以降) |
1,2) イテレータ
i を n だけインクリメントしたものを返します。3) イテレータ
i を n だけデクリメントしたものを返します。4)
x と y の間の距離を返します。これらの関数は、通常の 修飾なし または 修飾あり の検索では見えず、elements_view::iterator<Const> が引数に関連付けられたクラスである場合にのみ、引数依存の名前探索 によって見つけることができます。
目次 |
[編集] パラメータ
| i, x, y | - | イテレータ |
| n | - | 現在の位置からの相対位置 |
[編集] 戻り値
1,2) [&]{ auto j = i; j += n; return j; }()
3) [&]{ auto j = i; j -= n; return j; }()
4) x.base() - y.base()
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3483 | C++20 | elements_view::iterator の差分は過剰に制約されている |
要件が緩和されました |