10 template<
typename Con,
typename SSizeType>
11 concept CustomStride = concepts::TagInvocable<StrideFunction, Con, SSizeType>;
13 template<
typename Con,
typename SSizeType>
14 concept ViewStride =
requires(Con&& container, SSizeType&&
stride) {
15 StrideView { util::forward<Con>(container), util::forward<SSizeType>(
stride) };
18 struct StrideFunction {
19 template<concepts::ViewableContainer Con,
typename SSizeType = meta::ContainerSSizeType<Con>>
20 requires(CustomStride<Con, SSizeType> || ViewStride<Con, SSizeType>)
22 if constexpr (CustomStride<Con, SSizeType>) {
25 return StrideView { util::forward<Con>(container), util::forward<SSizeType>(
stride) };
constexpr auto stride
Definition stride.h:31
StrideView(Con &&, meta::ContainerSSizeType< Con >) -> StrideView< 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