10 template<
typename Con,
typename SSizeType>
11 concept CustomSlide = concepts::TagInvocable<SlideFunction, Con, SSizeType>;
13 template<
typename Con,
typename SSizeType>
14 concept ViewSlide =
requires(Con&& container, SSizeType&& predicate) {
15 SlideView { util::forward<Con>(container), util::forward<SSizeType>(predicate) };
18 struct SlideFunction {
19 template<concepts::ViewableContainer Con,
typename SSizeType>
20 requires(CustomSlide<Con, SSizeType> || ViewSlide<Con, SSizeType>)
21 constexpr auto operator()(Con&& container, SSizeType&& predicate)
const -> concepts::View
auto {
22 if constexpr (CustomSlide<Con, SSizeType>) {
23 return function::tag_invoke(*
this, util::forward<Con>(container), util::forward<SSizeType>(predicate));
25 return SlideView { util::forward<Con>(container), util::forward<SSizeType>(predicate) };
constexpr auto slide
Definition slide.h:31
SlideView(Con &&, meta::ContainerSSizeType< Con >) -> SlideView< meta::AsView< Con > >
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