Iros
 
Loading...
Searching...
No Matches
di::container::detail::TransformFunction Struct Reference

#include <di/container/algorithm/transform.h>

Public Member Functions

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 >
 

Member Function Documentation

◆ operator()() [1/3]

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>>>)
auto di::container::detail::TransformFunction::operator() ( Con && container,
Out output,
F op,
Proj proj = {} ) const -> InOutResult<meta::BorrowedIterator<Con>, Out>
inlineconstexpr

◆ operator()() [2/3]

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>>>)
auto di::container::detail::TransformFunction::operator() ( It first,
Sent last,
Out output,
F op,
Proj proj = {} ) const -> InOutResult<It, Out>
inlineconstexpr

◆ operator()() [3/3]

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>>>)
auto di::container::detail::TransformFunction::operator() ( It1 first1,
Sent1 last1,
It2 first2,
Sent2 last2,
Out output,
F op,
Proj1 proj1 = {},
Proj2 proj2 = {} ) const -> InInOutResult<It1, It2, Out>
inlineconstexpr

◆ transform()

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>>>)
auto di::container::detail::TransformFunction::transform ( Con1 && r1,
Con2 && r2,
Out output,
F op,
Proj1 proj1 = {},
Proj2 proj2 = {} ) -> InInOutResult<meta::BorrowedIterator<Con1>, meta::BorrowedIterator<Con2>, Out>
inlineconstexpr

The documentation for this struct was generated from the following file: