Namespaces
Variants

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

С ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
Определён в заголовке <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) Используется для получения типа константного итератора диапазона типа 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 соответственно
исправлено

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

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