|
template<typename... Args>
requires std::constructible_from<Action, Args&&...> |
| constexpr | BasicAlgorithm (Args &&... args) noexcept(std::is_nothrow_constructible_v< Action, Args &&... >) |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | operator() (Nullable &&opt, Steps &&... steps) & |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | operator() (Nullable &&opt, Steps &&... steps) const & |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | operator() (Nullable &&opt, Steps &&... steps) && |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | operator() (Nullable &&opt, Steps &&... steps) const && |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_value (Nullable &&opt, Steps &&... steps) & |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_value (Nullable &&opt, Steps &&... steps) const & |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_value (Nullable &&opt, Steps &&... steps) && |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_value (Nullable &&opt, Steps &&... steps) const && |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_null (Nullable &&opt, Steps &&... steps) & |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_null (Nullable &&opt, Steps &&... steps) const & |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_null (Nullable &&opt, Steps &&... steps) && |
| |
| template<typename Nullable, typename... Steps> |
| constexpr auto | on_null (Nullable &&opt, Steps &&... steps) const && |
| |
template<detail::unqualified Traits, detail::unqualified Action>
class gimo::BasicAlgorithm< Traits, Action >
The basic building block for every monadic operation.
- Template Parameters
-
| Traits | The policy struct defining certain behavior. |
| Action | The user-provided callable (e.g., lambda, function pointer). |
This class wraps a user-provided callable (Action) and associates it with specific behavior traits that dictate how the action is applied to a Nullable input.