std::ranges::range - cppreference.com
De cppreference.com
| Definido en el archivo de encabezado |
||
|
|
||
El concepto range define los requisitos de un tipo que permite la iteración sobre sus elementos proporcionando un iterador y un centinela que denotan los elementos en el rango.
Requisitos semánticos
Dada una expresión E tal que decltype((E)) es T, T modela a range solo si
- [
ranges::begin(E),ranges::end(E)) denota un rango y - tanto
ranges::begin(E)comoranges::end(E)se amortizan en tiempo constante y no alteran el valor deEde una manera observable para las expresiones que preservan la igualdad, y - si el tipo de
ranges::begin(E)modela aforward_iterator,ranges::begin(E)es conservador de la igualdad (en otras palabras, los iteradores de avance admiten algoritmos de múltiples pasadas)
Nota: En la definición anterior, las expresiones requeridas ranges::begin(std::forward<T>(t)) y ranges::end(std::forward<T>(t)) no requieren variaciones de expresión implícita.