Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i, difference_type n )
    requires ranges::random_access_range<Base>;
(1) (desde C++20)
friend constexpr /*iterator*/ operator+( difference_type n, const /*iterator*/& i )
    requires ranges::random_access_range<Base>;
(2) (desde C++20)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i, difference_type n )
    requires ranges::random_access_range<Base>;
(3) (desde C++20)
friend constexpr difference_type operator-( const /*iterator*/& x,
                                            const /*iterator*/& y )
    requires std::sized_sentinel_for<ranges::iterator_t<Base>, ranges::iterator_t<Base>>;
(4) (desde C++20)
1,2) Devuelve el iterador i incrementado por n.
3) Devuelve el iterador i decrementado por n.
4) Devuelve la distancia entre x y y.

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

Parámetros

i, x, y - los iteradores
n - posición relativa a la ubicación actual

Valor de retorno

1,2) [ & ] { auto j = i ; j + = n ; return j ; } ( )
3) [ & ] { auto j = i ; j - = n ; return j ; } ( )
4) x. base ( ) - y. base ( )

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3483 C++20 elements_view::iterator 's difference is overconstrained requirement is relaxed