Namespaces
Variants

std::ranges:: iterator_t, std::ranges:: const_iterator_t, std::ranges:: sentinel_t, std::ranges:: const_sentinel_t

From cppreference.net
Ranges library
Range adaptors
Определено в заголовочном файле <ranges>
template < class T >
using iterator_t = decltype ( ranges:: begin ( std:: declval < T & > ( ) ) ) ;
(1) (начиная с C++20)
template < ranges:: range R >
using const_iterator_t = decltype ( ranges:: cbegin ( std:: declval < R & > ( ) ) ) ;
(2) (начиная с C++23)
template < ranges:: range R >
using sentinel_t = decltype ( ranges:: end ( std:: declval < R & > ( ) ) ) ;
(3) (начиная с C++20)
template < ranges:: range R >
using const_sentinel_t = decltype ( ranges:: cend ( std:: declval < R & > ( ) ) ) ;
(4) (начиная с C++23)
1) Используется для получения типа итератора типа T .
2) Используется для получения типа константного итератора range типа R .
3) Используется для получения сторожевого типа типа диапазона R .
4) Используется для получения константного сторожевого типа диапазонного типа R .

Содержание

Параметры шаблона

T - тип, который может использоваться в std::ranges::begin
R - тип range или тип sized_range

Примечания

iterator_t может применяться к типам, не являющимся диапазонами, например, к массивам с неизвестной границей.

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3946 C++23 const_iterator_t и const_sentinel_t были несовместимы
с результатом ranges::cbegin и ranges::cend соответственно
исправлено

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

вычисляет связанные типы итератора
(псевдоним шаблона)
получает типы размера, разности и значения диапазона
(псевдоним шаблона)
получает ссылочные типы диапазона
(псевдоним шаблона)