std::ranges::drop_while_view<V,Pred>::base
De cppreference.com
<tbody>
</tbody>
constexpr V base() const& requires std::copy_constructible<V>; |
(1) | (desde C++20) |
constexpr V base() &&; |
(2) | (desde C++20) |
Devuelve una copia de la vista subyacente.
1) Construye por copia el resultado a partir de la vista subyacente.
2) Construye por movimiento el resultado a partir de la vista subyacente.
Parámetros
(Ninguno)
Valor de retorno
Una copia de la vista subyacente.
Ejemplo
Ejecuta este código
#include <array>
#include <ranges>
#include <iostream>
#include <algorithm>
void imprimir(auto primero, auto ultimo) {
for (; primero != ultimo; ++primero)
std::cout << *primero << ' ';
std::cout << '\n';
}
int main()
{
std::array datos{ 1, 2, 3, 4, 5 };
imprimir(datos.cbegin(), datos.cend());
auto func = [](int x) { return x < 3; };
auto vista = std::ranges::drop_while_view{ datos, func };
imprimir(vista.begin(), vista.end());
auto base = vista.base(); // `base` se refiere a los `datos`
std::ranges::reverse(base); //< cambia a `datos` indirectamente
imprimir(datos.cbegin(), datos.cend());
}
Salida:
1 2 3 4 5
3 4 5
5 4 3 2 1