42 struct iter_take_while_view
43 : view_adaptor<iter_take_while_view<Rng, Pred>, Rng,
44 is_finite<Rng>::value ? finite : unknown>
48 RANGES_NO_UNIQUE_ADDRESS semiregular_box_t<Pred> pred_;
50 template<
bool IsConst>
51 struct sentinel_adaptor : adaptor_base
54 friend struct sentinel_adaptor<!IsConst>;
55 using CRng = meta::const_if_c<IsConst, Rng>;
56 RANGES_NO_UNIQUE_ADDRESS semiregular_box_ref_or_val_t<Pred, IsConst> pred_;
59 sentinel_adaptor() =
default;
60 sentinel_adaptor(semiregular_box_ref_or_val_t<Pred, IsConst> pred)
61 : pred_(std::move(pred))
64 requires IsConst AND CPP_NOT(Other))
65 sentinel_adaptor(sentinel_adaptor<Other> that)
66 : pred_(std::move(that.pred_))
70 return it == last || !invoke(pred_, it);
73 sentinel_adaptor<false> end_adaptor()
77 template(
bool Const =
true)(
78 requires Const AND
range<meta::const_if_c<Const, Rng>> AND
80 sentinel_adaptor<Const> end_adaptor()
const
86 iter_take_while_view() =
default;
87 constexpr iter_take_while_view(Rng rng, Pred pred)
88 : iter_take_while_view::view_adaptor{std::move(rng)}
89 , pred_(std::move(pred))
94 struct take_while_view : iter_take_while_view<Rng, indirected<Pred>>
96 take_while_view() =
default;
97 constexpr take_while_view(Rng rng, Pred pred)
98 : iter_take_while_view<Rng, indirected<Pred>>{std::move(rng),
99 indirect(std::move(pred))}
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition conversion.hpp:399