operator+,-(ranges::elements_view::iterator)
De cppreference.com
<tbody>
</tbody>
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 en n.3) Devuelve el iterador
i decrementado en n.4) Devuelve la distancia entre
x y y.Estas funciones no son visibles a una búsqueda no calificada o calificada, y pueden encontrarse solamente mediante la búsqueda dependiente de argumento cuando elements_view::iterator<Const> es una clase asociada de los argumentos.
Parámetros
| i, x, y | - | Los iteradores. |
| n | - | La 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
| Esta sección está incompleta Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3483 | C++20 | La diferencia de elements_view::iterator está sobrerestringida.
|
Se relajó el requerimiento. |