Namespaces
Variants

std::ranges::enumerate_view<V>:: sentinel <Const>:: sentinel

From cppreference.net
Ranges library
Range adaptors
/*sentinel*/ ( ) = default ;
(1) (начиная с C++23)
constexpr /*sentinel*/ ( /*sentinel*/ < ! Const > i )

требует Const &&

std:: convertible_to < ranges:: sentinel_t < V > , ranges:: sentinel_t < Base >> ;
(2) (начиная с C++23)
private :
constexpr explicit /*sentinel*/ ( ranges:: sentinel_t < Base > end ) ;
(3) ( только для демонстрации* )

Создает sentinel .

1) Конструктор по умолчанию. Выполняет инициализацию значением базового сентинела с помощью ranges:: sentinel_t < Base > ( ) .
2) Преобразование из /*sentinel*/ < false > в /*sentinel*/ < true > . Перемещающее конструирование базового стражника end_ с помощью std :: move ( other. end_ ) .
3) Приватный конструктор, который используется enumerate_view::end . Перемещающий конструктор для end_ с std :: move ( end ) Этот конструктор недоступен для пользователей.

Параметры

i - a /*sentinel*/ < false >

Пример