Scroll to navigation

std::ranges::drop_while_view::drop_while_view(3) C++ Standard Libary std::ranges::drop_while_view::drop_while_view(3)

NAME

std::ranges::drop_while_view::drop_while_view - std::ranges::drop_while_view::drop_while_view

Synopsis


drop_while_view() requires std::default_initializable<V> && (1) (since C++20)
std::default_initializable<Pred> = default;
constexpr drop_while_view( V base, Pred pred ); (2) (since C++20)


Constructs a drop_while_view.


1) Default constructor. Value-initializes the underlying view and the predicate.
2) Move constructs the underlying view from base and the predicate from pred.

Parameters


base - underlying view
pred - predicate

Example

// Run this code


#include <array>
#include <iostream>
#include <ranges>


int main()
{
constexpr std::array data{ 0, -1, -2, 3, 1, 4, 1, 5, };


auto view = std::ranges::drop_while_view{
data, [](int x) { return x <= 0; }
};


for (int x: view) {
std::cout << x << ' ';
}
std::cout << '\n';
}

Output:


3 1 4 1 5


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
if Pred is not default_initializable,
P2325R3 C++20 the default constructor the drop_while_view is also
constructs a drop_while_view which not default_initializable
does not contain an Pred

2022.07.31 http://cppreference.com