44 is_finite<Rng>::value ? finite : unknown>
48 RANGES_NO_UNIQUE_ADDRESS semiregular_box_t<Pred> pred_;
50 template<
bool IsConst>
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
88 : iter_take_while_view::view_adaptor{std::move(rng)}
89 , pred_(std::move(pred))
CPP_member constexpr auto empty() const noexcept -> CPP_ret(bool)()
Test whether a range can be empty:
Definition interface.hpp:154