std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t
De es.cppreference.net
| Definido en el encabezado <ranges>
|
||
template< class T >
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
|
(1) | (desde C++20) |
template< ranges::range R >
using const_iterator_t = decltype(ranges::cbegin(std::declval<R&>()));
|
(2) | (desde C++23) |
template< ranges::range R >
using sentinel_t = decltype(ranges::end(std::declval<R&>()));
|
(3) | (desde C++20) |
template< ranges::range R >
using const_sentinel_t = decltype(ranges::cend(std::declval<R&>()));
|
(4) | (desde C++23) |
1) Se usa para obtener el tipo de iterador del tipo
T.3) Se usa para obtener el tipo centinela del tipo de rango
R.4) Se usa para obtener el tipo centinela constante del tipo de rango
R.Parámetros de plantilla
| T | - | un tipo que puede ser utilizado en std::ranges::begin |
| R | - |
un tipo
range
o un tipo
sized_range
|
Notas
iterator_t
puede aplicarse a tipos que no son rangos, por ejemplo, arrays con límite desconocido.
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3946 | C++23 |
const_iterator_t
y
const_sentinel_t
eran inconsistentes
con el resultado de
ranges::cbegin
y
ranges::cend
respectivamente
|
ajustado |
Véase también
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
calcula los tipos asociados de un iterador
(plantilla de alias) |
|
(C++20)
(C++20)
(C++20)
|
obtiene los tipos de tamaño, diferencia y valor de un rango
(plantilla de alias) |
|
(C++20)
(C++23)
(C++20)
(C++20)
|
obtiene los tipos de referencia de un rango
(plantilla de alias) |