std::ranges::drop_while_view<V,Pred>::base
constexpr V base() const& requires std::copy_constructible<V>; | (1) | (начиная с C++20) |
constexpr V base() &&; | (2) | (начиная с C++20) |
Возвращает копию базового представления.
1) Создаёт результат копированием базового представления
base_.
2) Создаёт результат перемещением базового представления
base_.Параметры
(нет)
Возвращаемое значение
Копия базового представления.
Пример
#include <algorithm>
#include <array>
#include <iostream>
#include <ranges>
void print(auto first, auto last)
{
for (; first != last; ++first)
std::cout << *first << ' ';
std::cout << '\n';
}
int main()
{
std::array data{1, 2, 3, 4, 5};
print(data.cbegin(), data.cend());
auto func = [](int x) { return x < 3; };
auto view = std::ranges::drop_while_view{data, func};
print(view.begin(), view.end());
auto base = view.base(); // `base` refers to the `data`
std::ranges::reverse(base); //< changes `data` indirectly
print(data.cbegin(), data.cend());
}
Вывод:
1 2 3 4 5 3 4 5 5 4 3 2 1
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/drop_while_view/base