名前空間
変種
操作

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

From cppreference.com
 
 
Rangesライブラリ
Rangeアダプタ
 
 
friend constexpr /*iterator*/ operator+( /*iterator*/ i, difference_type n )
    requires ranges::random_access_range<Base>;
(1) (C++20以降)
friend constexpr /*iterator*/ operator+( difference_type n, /*iterator*/ i )
    requires ranges::random_access_range<Base>;
(2) (C++20以降)
friend constexpr /*iterator*/ operator-( /*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 の間の距離を返します。

これらの関数は、通常の修飾なしまたは修飾ありの検索では見えず、transform_view::iterator<Const> が引数に関連付けられたクラスである場合にのみ、引数依存の検索で見つけることができます。

目次

[編集] パラメータ

i, x, y - イテレータ。
n - 現在の位置からの相対位置。

[編集] 戻り値

parent_ を親の transform_view へのポインタ、current_ を基底となるイテレータとします。

1,2) /*iterator*/{*i.parent_, i.current_ + n}
3) /*iterator*/{*i.parent_, i.current_ - n}
4) x.current_ - y.current_

[編集]

[編集] 不具合報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 3483 C++20 transform_view::iterator の差分が過剰に制約されている 要件が緩和された
English 日本語 中文(简体) 中文(繁體)