10 struct DropWhileFunction;
12 template<
typename Con,
typename Pred>
13 concept CustomDropWhile = concepts::TagInvocable<DropWhileFunction, Con, Pred>;
15 template<
typename Con,
typename Pred>
16 concept ViewDropWhile =
requires(Con&& container, Pred&& predicate) {
17 DropWhileView { util::forward<Con>(container), util::forward<Pred>(predicate) };
20 struct DropWhileFunction {
21 template<concepts::ViewableContainer Con,
typename Pred>
22 requires(CustomDropWhile<Con, Pred> || ViewDropWhile<Con, Pred>)
23 constexpr auto operator()(Con&& container, Pred&& predicate)
const -> concepts::View
auto {
24 if constexpr (CustomDropWhile<Con, Pred>) {
25 return function::tag_invoke(*
this, util::forward<Con>(container), util::forward<Pred>(predicate));
27 return DropWhileView { util::forward<Con>(container), util::forward<Pred>(predicate) };
37using view::drop_while;
constexpr auto drop_while
Definition drop_while.h:33
DropWhileView(Con &&, Pred) -> DropWhileView< meta::AsView< Con >, Pred >
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto curry_back
Definition curry_back.h:141
Definition any_storable.h:9