Namespaces
Variants

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

ja.cppreference.net から
 
 
レンジライブラリ
レンジアダプタ
 
 
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) イテレータを返します 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 のdifferenceが過度に制約されている 要件が緩和された