13 template<concepts::ViewableContainer Con, concepts::ConvertibleTo<meta::ContainerSSizeType<Con>> Diff>
14 constexpr auto operator()(Con&& container, Diff&& difference)
const -> concepts::View
auto {
15 if constexpr (concepts::TagInvocable<TakeFunction, Con, Diff>) {
16 return function::tag_invoke(*
this, util::forward<Con>(container), util::forward<Diff>(difference));
17 }
else if constexpr (concepts::SizedContainer<Con> && concepts::RandomAccessContainer<Con> &&
18 concepts::BorrowedContainer<Con> &&
19 concepts::ContainerIteratorReconstructibleContainer<Con, meta::RemoveCVRef<Con>,
28 return TakeView { util::forward<Con>(container),
constexpr auto take
Definition take.h:35
constexpr auto min
Definition min.h:49
constexpr auto ssize
Definition ssize.h:34
constexpr auto reconstruct
Definition reconstruct.h:75
TakeView(Con &&, meta::ContainerSSizeType< Con >) -> TakeView< meta::AsView< Con > >
constexpr auto begin
Definition begin.h:52
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
constexpr auto in_place_type
Definition in_place_type.h:12