Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
constexpr auto end ( )
requires ( ! ( /*simple-view*/ < Views > && ... ) ;
(1) (начиная с C++23)
constexpr auto end ( ) const
requires ( ranges:: range < const Views > && ... ) ;
(2) (начиная с 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) ( только для экспозиции* )

Возвращает iterator или sentinel , который сравнивается с конечным итератором zip_view .

Пусть views_ обозначает базовый кортеж представлений.

1) Эквивалентно:
  • return /*sentinel*/ < false > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; ,
если /*zip-is-common*/ < Views... > вычисляется в false . В противном случае,
если ( ranges:: random_access_range < Views > && ... ) вычисляется в true . В противном случае,
  • return /*iterator*/ < false > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; .
2) Эквивалентно:
  • return /*sentinel*/ < true > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; ,
если /*zip-is-common*/ < const Views... > вычисляется в false . Иначе,
если ranges:: random_access_range < const Views > && ... вычисляется в true . Иначе,
  • return /*iterator*/ < true > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; .

Содержание

Параметры

(нет)

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

Итератор или страж, представляющий конец zip_view , как описано выше.

Примечания

ranges:: range < const ranges:: zip_view < Views... >> моделируется тогда и только тогда, когда для каждого типа Vi в Views... , const Vi моделирует range .

Пример

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

возвращает итератор на начало
(публичная функция-член)
возвращает страж, указывающий на конец диапазона
(объект точки кастомизации)