std::ranges:: cend
|
Definido en el encabezado
<ranges>
|
||
|
Definido en el encabezado
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
cend
=
/* unspecified */
;
|
(desde C++20)
(objeto de punto de personalización) |
|
|
Firma de llamada
|
||
|
template
<
class
T
>
requires
/* see below */
|
(desde C++20) | |
Retorna un centinela para el iterador constante (since C++23) que indica el final de un rango calificado como const (until C++23) .
|
Sea
Una llamada a
|
(hasta C++23) |
|
Si el argumento es un lvalue o
ranges::
enable_borrowed_range
<
std::
remove_cv_t
<
T
>>
es
true
, entonces una llamada a
En todos los demás casos, una llamada a
|
(desde C++23) |
Si
ranges
::
cend
(
e
)
es válido para una expresión
e
, donde
decltype
(
(
e
)
)
es
T
, entonces
CT
modela
std::ranges::range
, y
(hasta C++23)
std::
sentinel_for
<
S, I
>
es
true
en todos los casos, donde
S
es
decltype
(
ranges
::
cend
(
e
)
)
, y
I
es
decltype
(
ranges::
cbegin
(
e
)
)
.
Adicionalmente,
S
modela
constant-iterator
si modela
input_iterator
.
(desde C++23)
Objetos de punto de personalización
El nombre
ranges::cend
denota un
objeto de punto de personalización
, que es un
objeto función
constante de un tipo de clase
literal
semiregular
. Consulte
CustomizationPointObject
para más detalles.
Ejemplo
#include <algorithm> #include <cassert> #include <ranges> #include <vector> int main() { std::vector vec{3, 1, 4}; int arr[]{5, 10, 15}; assert(std::ranges::find(vec, 5) == std::ranges::cend(vec)); assert(std::ranges::find(arr, 5) != std::ranges::cend(arr)); }
Véase también
|
(C++20)
|
retorna un centinela que indica el final de un rango
(objeto de punto de personalización) |
|
(C++11)
(C++14)
|
retorna un iterador al final de un contenedor o array
(plantilla de función) |