名前空間
変種
操作

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

From cppreference.com
< cpp‎ | ranges‎ | concat view‎ | iterator
 
 
Rangesライブラリ
Rangeアダプタ
 
 
friend constexpr /*iterator*/

    operator+( const /*iterator*/& it, difference_type n )

        requires /*concat-is-random-access*/<Const, Views...>;
(1) (C++26以降)
friend constexpr /*iterator*/

    operator+( difference_type n, const /*iterator*/& it )

        requires /*concat-is-random-access*/<Const, Views...>;
(2) (C++26以降)
friend constexpr /*iterator*/

    operator-( const /*iterator*/& it, difference_type n )

        requires /*concat-is-random-access*/<Const, Views...>;
(3) (C++26以降)
friend constexpr difference_type

    operator-( const /*iterator*/& x, const /*iterator*/& y )

        requires /*concat-is-random-access*/<Const, Views...>;
(4) (C++26以降)
friend constexpr difference_type

    operator-( const /*iterator*/& x, std::default_sentinel_t )

        requires /* see description */;
(5) (C++26以降)
friend constexpr difference_type

    operator-( std::default_sentinel_t, const /*iterator*/& x )

        requires /* see description */;
(6) (C++26以降)

イテレータをインクリメントまたはデクリメントします。

1) auto t = it; t += n; return t; と同等です。
2) return it + n; と同等です。
3) auto t = it; t -= n; return t; と同等です。
4) Ixx.it_ .index() とし、Iyy.it_ .index() とします。
もし x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception()true なら、振る舞いは未定義です。
5) Ixx.it_ .index() とすると、difference_type result = ranges::distance(x.get-iter <Ix>(), x.get-end <Ix>());
for (std::size_t I = Ix + 1, count = sizeof...(Views); I < count; I++)
    result += ranges::distance(x.get-view <I>());
return -result;
と同等です。
FsViews の最初の要素を除くすべての要素からなるパックとすると、requires 節の式は

(std::sized_sentinel_for<ranges::sentinel_t<maybe-const <Const, Views>>,
                         ranges::iterator_t<maybe-const <Const, Views>>> && ...) &&
    (ranges::sized_range<maybe-const <Const, Fs>> && ...)

と同等です。
もし x.it_ .valueless_by_exception()true なら、振る舞いは未定義です。
6) return -(x - std::default_sentinel); と同等です。
FsViews の最初の要素を除くすべての要素からなるパックとすると、requires 節の式は

(std::sized_sentinel_for<ranges::sentinel_t<maybe-const <Const, Views>>,
                         ranges::iterator_t<maybe-const <Const, Views>>> && ...) &&
    (ranges::sized_range<maybe-const <Const, Fs>> && ...)

と同等です。
もし x.it_ .valueless_by_exception()true なら、振る舞いは未定義です。

これらの関数は、通常の修飾なしまたは修飾ありのルックアップでは見えず、concat_view::iterator <Const> が引数に関連付けられたクラスである場合にのみ、引数依存の名前探索によって見つけることができます。

目次

[編集] パラメータ

it, x, y - イテレータ
n - 現在の位置からの相対的な位置

[編集] 戻り値

上記の通り。

[編集]

[編集] 関連項目

基底イテレータを進めたり、後退させたりします。
(public member function) [編集]
English 日本語 中文(简体) 中文(繁體)