名前空間
変種
操作

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

From cppreference.com
 
 
Rangesライブラリ
Rangeアダプタ
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i,

                                         difference_type n )

    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(1) (C++23から)
friend constexpr /*iterator*/ operator+( difference_type n,

                                         const /*iterator*/& i )

    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(2) (C++23から)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i,

                                         difference_type n )

    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(3) (C++23から)
friend constexpr difference_type operator-( const /*iterator*/& i,

                                            const /*iterator*/& j )
    requires

        /*cartesian-is-sized-sentinel*/<Const, iterator_t, First, Vs...>;
(4) (C++23から)
friend constexpr difference_type operator-( const /*iterator*/& i,

                                            std::default_sentinel_t )
    requires

        /*cartesian-is-sized-sentinel*/<Const, ranges::sentinel_t, First, Vs...>;
(5) (C++23から)
friend constexpr difference_type operator-( std::default_sentinel_t s,

                                            const /*iterator*/& i )
    requires

        /*cartesian-is-sized-sentinel*/<Const, ranges::sentinel_t, First, Vs...>;
(6) (C++23から)

イテレータ演算を実行するか、距離を計算します。

current_ は基となるイテレータのタプルを表し、parent_cartesian_product_view への基となるポインタを表します。

1) 次と同等です: return /*iterator*/(i) += n;
2) 次と同等です: return i + n;
3) 次と同等です: return /*iterator*/(i) -= n;
4) 次と同等です: return i.distance_from(j.current_);
5) /*end-tuple*/ を、次のような tuple の特殊化された型のオブジェクトとします。
  • std::get<0>(/*end-tuple*/)ranges::end(std::get<0>(i.parent_->bases_)); と同じ値になります。
  • std::get<N>(/*end-tuple*/) は、整数 1 ≤ N ≤ sizeof...(Vs) について、ranges::begin(std::get<N>(i.parent_->bases_)) と同じ値になります。
次と同等です: return i.distance_from(/*end-tuple*/);
6) 次と同等です: return -(i - s);

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

目次

[編集] パラメータ

i, j - イテレータ
n - 現在の位置からの相対位置
s - センチネル

[編集] 戻り値

1,2) インクリメントされたイテレータ。
3) デクリメントされたイテレータ。
4) 与えられたイテレータ間の距離。
5,6) 指定されたイテレータとセンチネルの間の距離。

[編集]

[編集] 関連項目

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