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