Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(1) (desde C++23)
friend constexpr /*iterator*/ operator+( difference_type n,
                                         const /*iterator*/& i )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(2) (desde C++23)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(3) (desde C++23)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            const /*iterator*/& j )
    requires
        /*cartesian-is-sized-sentinel*/<Const, iterator_t, First, Vs...>;
(4) (desde 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) (desde 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) (desde C++23)

Realiza aritmética de iteradores o calcula la distancia.

Sea current_ la tupla subyacente de iteradores y parent_ el puntero subyacente a cartesian_product_view.

1) Equivalente a: return /*iterator*/(i) += n;.
2) Equivalente a: return i + n;.
3) Equivalente a: return /*iterator*/(i) -= n;.
4) Equivalente a: return i.distance_from(j.current_);.
5) Sea /*end-tuple*/ un objeto de un tipo que es una especialización de std::tuple, tal que:
  • std::get<0>(/*end-tuple*/) tiene el mismo valor que ranges::end(std::get<0>(i.parent_->bases_));
  • std::get<N>(/*end-tuple*/) tiene el mismo valor que ranges::begin(std::get<N>(i.parent_->bases_)) para cada entero 1 ≤ N ≤ sizeof...(Vs).
Equivalente a: return i.distance_from(/*end-tuple*/);.
6) Equivalente a: return -(i - s);.

Estas funciones no son visibles para la búsqueda no calificada ordinaria ni para la búsqueda calificada, y solo pueden ser encontradas mediante búsqueda dependiente de argumentos cuando cartesian_product_view::iterator<Const> es una clase asociada de los argumentos.

Parámetros

i, j - los iteradores
n - la posición relativa a la ubicación actual
s - el centinela

Valor de retorno

1,2) Un iterador incrementado.
3) Un iterador decrementado.
4) Una distancia entre los iteradores dados.
5,6) Una distancia entre el iterador dado y el centinela.

Ejemplo

Véase también

avanza o decrementa el iterador subyacente
(función miembro pública)