14template<
typename Self>
20 return fmap(
static_cast<Self&
>(*
this), util::forward<F>(
function));
26 return fmap(
static_cast<Self const&
>(*
this), util::forward<F>(
function));
32 return fmap(
static_cast<Self&&
>(*
this), util::forward<F>(
function));
38 return fmap(
static_cast<Self const&&
>(*
this), util::forward<F>(
function));
44 return bind(
static_cast<Self&
>(*
this), util::forward<F>(
function));
50 return bind(
static_cast<Self const&
>(*
this), util::forward<F>(
function));
56 return bind(
static_cast<Self&&
>(*
this), util::forward<F>(
function));
62 return bind(
static_cast<Self const&&
>(*
this), util::forward<F>(
function));
68 return fail(
static_cast<Self&
>(*
this), util::forward<F>(
function));
74 return fail(
static_cast<Self const&
>(*
this), util::forward<F>(
function));
80 return fail(
static_cast<Self&&
>(*
this), util::forward<F>(
function));
86 return fail(
static_cast<Self const&&
>(*
this), util::forward<F>(
function));
Definition monad_interface.h:15
constexpr auto and_then(F &&function) &&-> decltype(auto)
Definition monad_interface.h:55
constexpr auto and_then(F &&function) &-> decltype(auto)
Definition monad_interface.h:43
constexpr auto and_then(F &&function) const &&-> decltype(auto)
Definition monad_interface.h:61
constexpr friend auto tag_invoke(types::Tag< enable_monad >, types::InPlaceType< Self >) -> bool
Definition monad_interface.h:114
constexpr auto transform(F &&function) &-> decltype(auto)
Definition monad_interface.h:19
constexpr auto transform(F &&function) &&-> decltype(auto)
Definition monad_interface.h:31
constexpr auto or_else(F &&function) &&-> decltype(auto)
Definition monad_interface.h:79
constexpr auto transform_error(F &&function) const &-> decltype(auto)
Definition monad_interface.h:97
constexpr auto transform(F &&function) const &&-> decltype(auto)
Definition monad_interface.h:37
constexpr auto transform_error(F &&function) &&-> decltype(auto)
Definition monad_interface.h:103
constexpr auto transform(F &&function) const &-> decltype(auto)
Definition monad_interface.h:25
constexpr auto and_then(F &&function) const &-> decltype(auto)
Definition monad_interface.h:49
constexpr auto transform_error(F &&function) const &&-> decltype(auto)
Definition monad_interface.h:109
constexpr auto transform_error(F &&function) &-> decltype(auto)
Definition monad_interface.h:91
constexpr auto or_else(F &&function) &-> decltype(auto)
Definition monad_interface.h:67
constexpr auto or_else(F &&function) const &-> decltype(auto)
Definition monad_interface.h:73
constexpr auto or_else(F &&function) const &&-> decltype(auto)
Definition monad_interface.h:85
Definition monad_bind.h:6
constexpr auto bind
Definition monad_bind.h:14
constexpr auto fmap
Definition monad_fmap.h:14
constexpr auto fmap_right
Definition monad_fmap_right.h:14
constexpr auto fail
Definition monad_fail.h:14
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Definition in_place_type.h:5