Namespaces
Variants

std::ranges::zip_view<Vistas...>::end

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
constexpr auto end()
    requires (!(/*simple-view*/<Views> && ...);
(1) (desde C++23)
constexpr auto end() const
    requires (ranges::range<const Views> && ...);
(2) (desde C++23)
template< class... Rs >
concept /*zip-is-common*/ =
    (sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
    ||
    (!(ranges::bidirectional_range<Rs> && ...) && (ranges::common_range<Rs> && ...))
    ||
    ((ranges::random_access_range<Rs> && ...) && (ranges::sized_range<Rs> && ...));
(3) (solo exposición*)

Devuelve un iterator o un sentinel que compara igual al iterador final de zip_view.

Sea views_ la tupla subyacente de vistas.

1) Equivalente a:
  • return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
si /*zip-is-common*/<Views...> se evalúa como false. De lo contrario,
  • return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
si (ranges::random_access_range<Views> && ...) se evalúa como true. De lo contrario,
  • return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));.
2) Equivalente a:
  • return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
si /*zip-is-common*/<const Views...> se evalúa como false. De lo contrario,
  • return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
si ranges::random_access_range<const Views> && ... se evalúa como true. De lo contrario,
  • return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));.

Parámetros

(ninguno)

Valor de retorno

Un iterador o centinela que representa el final del zip_view , como se describe anteriormente.

Notas

ranges:: range < const ranges:: zip_view < Views... >> se modela si y solo si para cada tipo Vi en Views... , const Vi modela range .

Ejemplo

Véase también

devuelve un iterador al inicio
(función miembro pública)
devuelve un centinela que indica el final de un rango
(objeto de punto de personalización)