std::ranges::view_interface<D>::back
De cppreference.com
< cpp | ranges | view interface
constexpr decltype(auto) back() requires ranges::bidirectional_range<D>&&ranges::common_range<D>; | (1) | (desde C++20) |
constexpr decltype(auto) back()const requires ranges::bidirectional_range<const D>&&ranges::common_range<const D>; | (2) | (desde C++20) |
La implementación por defecto de la función miembro back()
devuelve el último elemento en la vista del tipo derivado. Si el elemento se devuelve por valor o por referencia depende del operador operator* del tipo iterador..
1) Sea
derived
static_cast<D&>(*this). Es equivalente a return*ranges::prev(ranges::end(derived));. El comportamiento no está definido si empty()
es true (es decir, el iterador al comienzo se compara igual que el centinela), incluso si el iterador obtenido de la misma manera se puede desreferenciar.2) Igual que (1), excepto que
derived
es static_cast<const D&>(*this).Contenido |
[editar]Parámetros
(Ninguno)
[editar]Valor de retorno
El último elemento en la vista.
[editar]Notas
En C++20, ningún tipo derivado de std::ranges::view_interface en la biblioteca estándar proporciona su propia función miembro back()
.
Sin embargo, los siguientes tipos derivados no pueden usar la implementación por defecto, ya que nunca satisfacen 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 función miembro back()
heredada está disponible para std::ranges::empty_view, pero llamarla siempre resulta en comportamiento no definido.
[editar]Ejemplo
Esta sección está incompleta Razón: sin ejemplo |
[editar]Véase también
(C++14) | Devuelve un iterador inverso al contenedor o array (plantilla de función) |
(C++20) | Devuelve un iterador inverso a un rango (objeto punto de personalización) |
(C++20) | Devuelve un iterador inverso a un rango de solo lectura (objeto punto de personalización) |