Namespaces
Variants

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

ja.cppreference.net より
 
 
レンジライブラリ
レンジアダプタ
 
 
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以降)

iterator の算術演算を行うか、距離を計算します。

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*/ を std::tuple の特殊化である型のオブジェクトとし、次の条件を満たす:
  • std::get<0>(/*end-tuple*/) は ranges::end(std::get<0>(i.parent_->bases_));
  • std::get<N>(/*end-tuple*/) と同じ値を持ち、ranges::begin(std::get<N>(i.parent_->bases_)) は任意の整数 1 ≤ N ≤ sizeof...(Vs) に対して同じ値を持つ。
以下と同等: 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) 指定されたイテレータとセンチネル間の距離。

例

関連項目

基となるイテレータを進めるまたは戻す
(公開メンバ関数)