Namespaces
Variants

nothrow-input-iterator, nothrow-forward-iterator, nothrow-bidirectional-iterator, no-throw-input-range, nothrow-random-access-iterator

De es.cppreference.net
 
 
Biblioteca de algoritmos
Algoritmos restringidos y algoritmos sobre rangos (C++20)
Algoritmos restringidos, p. ej. ranges::copy, ranges::sort, ...
Operaciones de secuencia no modificadoras    
Operaciones por lotes
(C++17)
Operaciones de búsqueda
Operaciones de secuencia modificadoras
Operaciones de copia
(C++11)
(C++11)
Operaciones de intercambio
Operaciones de transformación
Operaciones de generación
Operaciones de eliminación
Operaciones de cambio de orden
(hasta C++17)(C++11)
(C++20)(C++20)
Operaciones de muestreo
(C++17)

Ordenación y operaciones relacionadas
Operaciones de partición
(C++11)    

Operaciones de ordenación
Operaciones de búsqueda binaria
(en rangos particionados)
Operaciones de conjunto (en rangos ordenados)
Operaciones de fusión (en rangos ordenados)
Operaciones de montículo
Operaciones de mínimo/máximo
(C++11)
(C++17)
Operaciones de comparación lexicográfica
Operaciones de permutación


 
 
template< class I >
concept /*nothrow-input-iterator*/ =
    std::input_iterator<I> &&
    std::is_lvalue_reference_v<std::iter_reference_t<I>> &&
    std::same_as<std::remove_cvref_t<std::iter_reference_t<I>>,
                 std::iter_value_t<I>>;
(1) (solo exposición*)
template< class I >
concept /*nothrow-forward-iterator*/ =
    /*nothrow-input-iterator*/<I> &&
    std::forward_iterator<I> &&
    /*nothrow-sentinel-for*/<I, I>;
(2) (solo exposición*)
template< class I >
concept /*nothrow-bidirectional-iterator*/ =
    /*nothrow-forward-iterator*/<I> &&
    std::bidirectional_iterator<I>;
(3) (desde C++26)
(solo exposición*)
template< class I >
concept /*nothrow-random-access-iterator*/ =
    /*nothrow-bidirectional-iterator*/<I> &&
    std::random_access_iterator<I> &&
    /*nothrow-sized-sentinel-for*/<I, I>;
(4) (desde C++26)
(solo exposición*)

Estos conceptos de solo exposición especifican que no se lanzan excepciones de las operaciones requeridas por los algoritmos <de memoria> especializados sobre iteradores.

Para las definiciones de /*nothrow-sentinel-for*/ y /*nothrow-sized-sentinel-for*/, consulte esta página.

Requisitos semánticos

1) Un tipo I modela nothrow-input-iterator solo si no se lanzan excepciones al incrementar, copiar construir, mover construir, copiar asignar, mover asignar, o desreferenciar iteradores válidos del tipo I.
3) Un tipo I modela nothrow-bidirectional-iterator solo si no se lanzan excepciones al decrementar iteradores válidos del tipo I.
4) Un tipo I modela nothrow-random-access-iterator solo si no se lanzan excepciones al comparar iteradores válidos del tipo I, o los operadores -, +, -=, +=, [] sobre valores válidos de tipo I y std::iter_difference_t<I>.

Notas

Estos conceptos permiten que algunas operaciones sobre iteradores lancen excepciones.

Véase también

especifica que un tipo es un iterador de entrada, es decir, sus valores referenciados pueden leerse y puede ser pre- y post-incrementado
(concepto)
especifica que un input_iterator es un iterador hacia adelante, que soporta comparación de igualdad y paso múltiple
(concepto)
especifica que un forward_iterator es un iterador bidireccional, que soporta movimiento hacia atrás
(concepto)
especifica que un bidirectional_iterator es un iterador de acceso aleatorio, que soporta avance en tiempo constante y subíndice
(concepto)