14 struct InvokeAsFallibleFunction : function::pipeline::EnablePipeline {
15 template<
typename F,
typename... Args, concepts::DecayConstructible R =
meta::InvokeResult<F, Args...>>
16 requires(concepts::Expected<R>)
17 constexpr auto operator()(F&& function, Args&&... args)
const ->
meta::Decay<R> {
18 return function::invoke(util::forward<F>(function), util::forward<Args>(args)...);
23 requires(!concepts::Expected<R> && concepts::ConstructibleFrom<G, R>)
24 constexpr auto operator()(F&& function, Args&&... args)
const -> G {
25 return G {
function::invoke(util::forward<F>(function), util::forward<Args>(args)...) };
29 requires(concepts::LanguageVoid<R>)
30 constexpr auto operator()(F&& function, Args&&... args)
const -> Expected<void, void> {
41using vocab::invoke_as_fallible;
constexpr auto invoke
Definition invoke.h:100
constexpr auto invoke_as_fallible
Definition invoke_as_fallible.h:37
Expected(T &&) -> Expected< meta::UnwrapRefDecay< T >, void >
Definition any_storable.h:9