Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
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*/ будет объектом типа, являющимся специализацией 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 - страж (sentinel)

Возвращаемое значение

1,2) Инкрементированный итератор.
3) Декрементированный итератор.
4) Расстояние между заданными итераторами.
5,6) Расстояние между заданным итератором и сторожем.

Пример

Смотрите также

перемещает вперед или назад базовый итератор
(public member function)