[ Web Proxy ]
URL:
Viewing: http://ru.cppreference.com/cpp/ranges/take_while_view [Back]  [Original]

std::ranges::views::take_while, std::ranges::take_while_view cppreference.com
cppreference.com

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.
2) RangeAdaptorObject. views::take_while(e, f) take_while_view(e, f) e f.

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>) []
, . , 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>) []
. , 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!

view, N view
( ) ( ) []
view, view, , false
( ) ( ) []

Web Proxy Viewer  |  New URL  |  Original Page