nothrow-input-range, nothrow-forward-range, nothrow-bidirectional-range, no-throw-input-range, nothrow-random-access-range, nothrow-sized-random-access-range
De es.cppreference.net
template< class R >
concept /*nothrow-input-range*/ =
ranges::range<R> &&
/*nothrow-input-iterator*/<ranges::iterator_t<R>> &&
/*nothrow-sentinel-for*/<ranges::sentinel_t<R>, ranges::iterator_t<R>>;
|
(1) | (solo para exposición*) |
template< class R >
concept /*nothrow-forward-range*/ =
/*nothrow-input-range*/<R> &&
/*nothrow-forward-iterator*/<ranges::iterator_t<R>>;
|
(2) | (solo para exposición*) |
template< class R >
concept /*nothrow-bidirectional-range*/ =
/*nothrow-forward-range*/<R> &&
/*nothrow-bidirectional-iterator*/<ranges::iterator_t<R>>;
|
(3) | (desde C++26) (solo para exposición*) |
template< class R >
concept /*nothrow-random-access-range*/ =
/*nothrow-bidirectional-range*/<R> &&
/*nothrow-random-access-iterator*/<ranges::iterator_t<R>>;
|
(4) | (desde C++26) (solo para exposición*) |
template< class R >
concept /*nothrow-sized-random-access-range*/ =
/*nothrow-random-access-range*/<R> && ranges::sized_range<R>;
|
(5) | (desde C++26) (solo para exposición*) |
Estos conceptos de solo exposición especifican que no se lanzan excepciones desde las operaciones requeridas por los algoritmos <memory> especializados sobre rangos.
Para las definiciones de /*nothrow-input-iterator*/, /*nothrow-forward-iterator*/, /*nothrow-bidirectional-iterator*/ y /*nothrow-random-access-iterator*/, vea esta página.
Requisitos semánticos
1) Un tipo
R modela nothrow-input-range solo si no se lanzan excepciones desde llamadas a ranges::begin y ranges::end en un objeto de tipo R.5) Un tipo
R modela nothrow-sized-random-access-range solo si no se lanzan excepciones desde llamadas a ranges::size en un objeto de tipo R.Notas
Estos conceptos permiten que algunas operaciones sobre rangos lancen excepciones.
Véase también
(C++20) |
especifica que un tipo es un rango, es decir, proporciona un begin iterador y un end centinela (concepto) |
(C++20) |
especifica que un rango conoce su tamaño en tiempo constante (concepto) |
(C++20)(C++23)(C++20)(C++23) |
obtiene los tipos de iterador y centinela de un rango (plantilla de alias) |