名前空間
変種
操作

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

From cppreference.com
< cpp‎ | ranges‎ | elements view‎ | iterator
 
 
Rangesライブラリ
Rangeアダプタ
 
 
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 )

    requires std::sized_sentinel_for<ranges::iterator_t<Base>, ranges::iterator_t<Base>>;
(4) (C++20以降)
1,2) イテレータ in だけインクリメントしたものを返します。
3) イテレータ in だけデクリメントしたものを返します。
4) xy の間の距離を返します。

これらの関数は、通常の 修飾なし または 修飾あり の検索では見えず、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 の差分は過剰に制約されている 要件が緩和されました
English 日本語 中文(简体) 中文(繁體)