std::ranges::view_interface<D>::back
constexpr decltype(auto) back()
requires ranges::bidirectional_range<D> && ranges::common_range<D>;
|
(1) | (depuis C++20) |
constexpr decltype(auto) back() const
requires ranges::bidirectional_range<const D> && ranges::common_range<const D>;
|
(2) | (depuis C++20) |
L'implémentation par défaut de la fonction membre back() retourne le dernier élément de la vue du type dérivé. Que l'élément soit retourné par valeur ou par référence dépend du operator* du type d'itérateur.
Équivalent à return *ranges::prev(ranges::end(derived));, où derived est :
static_cast<D&>(*this)static_cast<const D&>(*this)
|
Si |
(jusqu'à C++26) |
|
Si
|
(depuis C++26) |
Valeur de retour
Le dernier élément dans la vue.
Notes
En C++20, aucun type dérivé de
std::ranges::view_interface
dans la bibliothèque standard ne fournit sa propre fonction membre
back()
.
Cependant, les types dérivés suivants ne peuvent pas utiliser les implémentations par défaut, car ils ne satisfont jamais ni
bidirectional_range
ni
common_range
:
- std::ranges::basic_istream_view
- std::ranges::lazy_split_view
- std::ranges::split_view
- std::ranges::take_while_view
La fonction membre héritée
back()
est disponible pour
std::ranges::empty_view
, mais un appel à celle-ci entraîne toujours un comportement indéfini.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
(C++14)
|
retourne un itérateur inverse vers le début d'un conteneur ou d'un tableau
(modèle de fonction) |
|
(C++20)
|
retourne un itérateur inverse vers un intervalle
(objet point de personnalisation) |
|
(C++20)
|
retourne un itérateur inverse vers un intervalle en lecture seule
(objet point de personnalisation) |