Namespaces
Variants

no-throw-input-iterator , no-throw-forward-iterator , no-throw-sentinel-for , no-throw-input-range , no-throw-forward-range

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(1) ( solo para exposición* )
template < class I >

concepto no - throw - forward - iterator =
no - throw - input - iterator < I > &&
std:: forward_iterator < I > &&

no - throw - sentinel - for < I, I > ;
(2) ( solo para exposición* )
template < class S, class I >
concepto no - throw - sentinel - for = std:: sentinel_for < S, I > ;
(3) ( solo para exposición* )
template < class R >

concepto no - throw - input - range =
ranges:: range < R > &&
no - throw - input - iterator < ranges:: iterator_t < R >> &&

no - throw - sentinel - for < ranges:: sentinel_t < R > , ranges:: iterator_t < R >> ;
(4) ( solo para exposición* )
template < class R >

concepto no - throw - forward - range =
no - throw - input - range < R > &&

no - throw - forward - iterator < ranges:: iterator_t < R >> ;
(5) ( solo para exposición* )

Estos conceptos solo de exposición especifican que no se lanzan excepciones desde las operaciones requeridas por algoritmos en iteradores, centinelas y rangos.

1) El concepto no-throw-input-iterator requiere que desreferenciar el iterador produzca un lvalue, como contiguous_iterator y LegacyForwardIterator .

Requisitos semánticos

Como todos los conceptos estándar, cada concepto listado aquí se modela solo si todos los conceptos que subsume están modelados.

1) Un tipo I modela no-throw-input-iterator solo si no se lanzan excepciones desde el incremento, construcción por copia, construcción por movimiento, asignación por copia, asignación por movimiento, o desreferenciación a través de iteradores válidos.
3) Los tipos S y I modelan no-throw-sentinel-for solo si no se lanzan excepciones desde la construcción por copia, construcción por movimiento, asignación por copia, asignación por movimiento, o comparaciones entre valores válidos de tipo I y S .
4) Un tipo R modela no-throw-input-range solo si no se lanzan excepciones desde las llamadas a ranges:: begin y ranges:: end sobre un objeto de tipo R .

Notas

Estos conceptos permiten que algunas operaciones sobre iteradores y sentineles puedan lanzar excepciones, por ejemplo, operaciones sobre valores inválidos.

Véase también

especifica que un tipo es un iterador de entrada, es decir, sus valores referenciados pueden leerse y puede incrementarse tanto pre- como post-
(concepto)
especifica que un input_iterator es un iterador de avance, que admite comparación de igualdad y múltiples pasadas
(concepto)
especifica que un tipo es un centinela para un tipo input_or_output_iterator
(concepto)
especifica un rango cuyo tipo de iterador satisface input_iterator
(concepto)
especifica un rango cuyo tipo de iterador satisface forward_iterator
(concepto)