Spec-Zone.ru › C++

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

Определено в заголовочном файле <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++.

Отчёт об ошибке Применяется к Опубликованное поведение Корректное поведение
LWG 3946 C++23 const_iterator_t и const_sentinel_t не соответствовали
результату ranges::cbegin и ranges::cend соответственно
скорректировано

См. также

iter_value_titer_reference_titer_const_reference_titer_difference_titer_rvalue_reference_titer_common_reference_t
(C++20)(C++20)(C++23)(C++20)(C++20)(C++20)
вычисляет связанные типы итератора
(шаблон псевдонима)
ranges::range_difference_tranges::range_size_tranges::range_value_t
(C++20)(C++20)(C++20)
получает типы размера, разности и значения диапазона
(шаблон псевдонима)
ranges::range_reference_tranges::range_const_reference_tranges::range_rvalue_reference_tranges::range_common_reference_t
(C++20)(C++23)(C++20)(C++20)
получает ссылочные типы диапазона
(шаблон псевдонима)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/iterator_t

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API