std::ranges:: cend
|
Défini dans l'en-tête
<ranges>
|
||
|
Défini dans l'en-tête
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
cend
=
/* unspecified */
;
|
(depuis C++20)
(objet de point de personnalisation) |
|
|
Signature d'appel
|
||
|
template
<
class
T
>
requires
/* voir ci-dessous */
|
(depuis C++20) | |
Retourne un sentinelle pour l'itérateur constant (depuis C++23) indiquant la fin d'une plage qualifiée const (jusqu'à C++23) .
|
Soit
Un appel à
|
(jusqu'à C++23) |
|
Si l'argument est une lvalue ou si
ranges::
enable_borrowed_range
<
std::
remove_cv_t
<
T
>>
est
true
, alors un appel à
Dans tous les autres cas, un appel à
|
(depuis C++23) |
Si
ranges
::
cend
(
e
)
est valide pour une expression
e
, où
decltype
(
(
e
)
)
est
T
, alors
CT
modélise
std::ranges::range
, et
(jusqu'à C++23)
std::
sentinel_for
<
S, I
>
est
true
dans tous les cas, où
S
est
decltype
(
ranges
::
cend
(
e
)
)
, et
I
est
decltype
(
ranges::
cbegin
(
e
)
)
.
De plus,
S
modélise
constant-iterator
s'il modélise
input_iterator
.
(depuis C++23)
Objets de point de personnalisation
Le nom
ranges::cend
désigne un
objet de point de personnalisation
, qui est un
objet fonction
constant de type classe
littéral
semiregular
. Voir
CustomizationPointObject
pour plus de détails.
Exemple
#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)); }
Voir aussi
|
(C++20)
|
retourne un sentinelle indiquant la fin d'une plage
(objet de point de personnalisation) |
|
(C++11)
(C++14)
|
retourne un itérateur vers la fin d'un conteneur ou d'un tableau
(fonction template) |