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 point de personnalisation) |
|
| Signature d'appel |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto cend( T&& t );
|
(depuis C++20) | |
Retourne une sentinelle pour l'itérateur constant(depuis C++23) indiquant la fin d'un intervalle qualifié const(jusqu'à C++23).
|
Soit
Un appel à |
(jusqu'à C++23) |
|
Si l'argument est une valeur gauche ou
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 si elle 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) |