std::ranges::views::take_while, std::ranges::take_while_view
cppreference.com
:cpp/ranges/take while view/navbar
<tbody> </tbody> template< ranges::view V, class Pred > requires ranges::input_range<V> && std::is_object_v<Pred> && std::indirect_unary_predicate<const Pred, ranges::iterator_t<V>> class take_while_view : public ranges::view_interface<take_while_view<V, Pred>> |
(1) | ( C++20) |
namespace views { inline constexpr /*unspecified*/ take_while = /*unspecified*/; } |
(2) | ( C++20) |
| |
||
template< ranges::viewable_range R, class Pred > requires /* see below */ constexpr ranges::view auto take_while( R&& r, Pred&& pred ); |
( C++20) | |
template< class Pred > constexpr /*range adaptor closure*/ take_while( Pred&& pred ); |
( C++20) | |
1) ,
view , , false.take_while_view contiguous_range, random_access_range, bidirectional_range, forward_range, input_range V .
:cpp/ranges/adaptor/dsc pred
(C++20) |
take_while_view (public -) |
(C++20) |
() (public -) |
(C++20) |
(public -) |
(C++20) |
(public -) |
std::ranges::view_interface | |
(C++20) |
. , sized_range forward_range. (public - std::ranges::view_interface<D>)
|
(C++23) |
. (public - std::ranges::view_interface<D>)
|
(C++23) |
. (public - std::ranges::view_interface<D>)
|
(C++20) |
, . , ranges::empty . (public - std::ranges::view_interface<D>)
|
(C++20) |
. , contiguous_iterator. (public - std::ranges::view_interface<D>)
|
(C++20) |
. , forward_range. (public - std::ranges::view_interface<D>)
|
(C++20) |
. , random_access_range. (public - std::ranges::view_interface<D>)
|
Deduction guides
| ( - ) |
#include <iostream>
#include <ranges>
int main()
{
for (int year : std::views::iota(2020)
| std::views::take_while([](int y) { return y <= 2023; }))
std::cout << year << ' ';
std::cout << '\n';
const char idea[] {"Today is yesterday's tomorrow!..."};
for (char x : std::ranges::take_while_view(idea, [](char c) { return c != '.'; }))
std::cout << x;
std::cout << '\n';
}
:
2020 2021 2022 2023
Today is yesterday's tomorrow!
(C++20) |
view, N view ( ) ( ) |
view, view, , false ( ) ( ) |