14 class PipedFunction :
public pipeline::EnablePipeline {
17 constexpr PipedFunction(types::InPlace, Fn&& function) : m_function(util::forward<Fn>(function)) {}
19 constexpr PipedFunction(PipedFunction
const&) =
default;
20 constexpr PipedFunction(PipedFunction&&) =
default;
22 constexpr auto operator=(PipedFunction
const&) -> PipedFunction& =
delete;
23 constexpr auto operator=(PipedFunction&&) -> PipedFunction& =
delete;
25 template<
typename... Args>
26 requires(concepts::Invocable<F&, Args...>)
27 constexpr auto operator()(Args&&... args) & ->
decltype(
auto) {
31 template<
typename... Args>
32 requires(concepts::Invocable<F
const&, Args...>)
33 constexpr auto operator()(Args&&... args)
const& ->
decltype(
auto) {
37 template<
typename... Args>
38 requires(concepts::Invocable<F &&, Args...>)
39 constexpr auto operator()(Args&&... args) && ->
decltype(
auto) {
40 return function::invoke(util::move(m_function), util::forward<Args>(args)...);
43 template<
typename... Args>
44 requires(concepts::Invocable<F
const &&, Args...>)
45 constexpr auto operator()(Args&&... args)
const&& ->
decltype(
auto) {
46 return function::invoke(util::move(m_function), util::forward<Args>(args)...);
55requires(concepts::ConstructibleFrom<meta::Decay<F>, F>)
constexpr auto invoke
Definition invoke.h:100
constexpr auto piped(F &&function)
Definition piped.h:56
constexpr auto in_place
Definition in_place.h:8
Definition any_storable.h:9