|
template<concepts::InputIterator It, concepts::SentinelFor< It > Sent, concepts::WeaklyIncrementable Out, concepts::CopyConstructible F, typename Proj = function::Identity>
requires (concepts::IndirectlyWritable<Out, meta::IndirectResult<F&, meta::Projected<It, Proj>>>) |
constexpr auto | operator() (It first, Sent last, Out output, F op, Proj proj={}) const -> InOutResult< It, Out > |
|
template<concepts::InputContainer Con, concepts::WeaklyIncrementable Out, concepts::CopyConstructible F, typename Proj = function::Identity>
requires (concepts::IndirectlyWritable< Out, meta::IndirectResult<F&, meta::Projected<meta::ContainerIterator<Con>, Proj>>>) |
constexpr auto | operator() (Con &&container, Out output, F op, Proj proj={}) const -> InOutResult< meta::BorrowedIterator< Con >, Out > |
|
template<concepts::InputIterator It1, concepts::SentinelFor< It1 > Sent1, concepts::InputIterator It2, concepts::SentinelFor< It2 > Sent2, concepts::WeaklyIncrementable Out, concepts::CopyConstructible F, typename Proj1 = function::Identity, typename Proj2 = function::Identity>
requires (concepts::IndirectlyWritable< Out, meta::IndirectResult<F&, meta::Projected<It1, Proj1>, meta::Projected<It2, Proj2>>>) |
constexpr auto | operator() (It1 first1, Sent1 last1, It2 first2, Sent2 last2, Out output, F op, Proj1 proj1={}, Proj2 proj2={}) const -> InInOutResult< It1, It2, Out > |
|
template<concepts::InputContainer Con1, concepts::InputContainer Con2, concepts::WeaklyIncrementable Out, concepts::CopyConstructible F, typename Proj1 = function::Identity, typename Proj2 = function::Identity>
requires (concepts::IndirectlyWritable< Out, meta::IndirectResult<F&, meta::Projected<meta::ContainerIterator<Con1>, Proj1>, meta::Projected<meta::ContainerIterator<Con2>, Proj2>>>) |
constexpr auto | transform (Con1 &&r1, Con2 &&r2, Out output, F op, Proj1 proj1={}, Proj2 proj2={}) -> InInOutResult< meta::BorrowedIterator< Con1 >, meta::BorrowedIterator< Con2 >, Out > |
|