std::ranges::approximately_sized_range
De es.cppreference.net
| Definido en el encabezado <ranges>
|
||
template< class T >
concept approximately_sized_range = ranges::range<T> &&
requires(T& t) {
ranges::reserve_hint(t);
};
|
(desde C++26) | |
El concepto approximately_sized_range especifica los requisitos de un tipo range que puede estimar su tamaño en tiempo constante con la función reserve_hint.
Requisitos semánticos
Dado un lvalue
t
de tipo
std::
remove_reference_t
<
T
>
,
T
modela
approximately_sized_range
solo si
- ranges :: reserve_hint ( t )
-
- tiene una complejidad de tiempo constante amortizada,
- no altera el valor de t de manera observable para expresiones que preservan la igualdad , y
- tiene un valor que no es negativo y es representable en ranges:: range_difference_t < T > , y
-
si
ranges::
iterator_t
<
T
>
modela
forward_iterator, ranges :: reserve_hint ( t ) está bien definido independientemente de la evaluación de ranges:: begin ( t ) (en otras palabras, un rango de tamaño aproximado de paso único puede admitir una llamada areserve_hintsolo antes de la primera llamada abegin, pero un rango de avance debe admitir tamaño en todo momento).
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_ranges_reserve_hint
|
202502L
|
(C++26) | ranges::approximately_sized_range |
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
(C++20)
|
especifica que un rango conoce su tamaño en tiempo constante
(concepto) |