Iros
 
Loading...
Searching...
No Matches
di::function::monad::MonadInterface< Self > Class Template Reference

#include <di/function/monad/monad_interface.h>

Public Member Functions

template<typename F>
requires (concepts::Invocable<decltype(fmap), Self&, F>)
constexpr auto transform (F &&function) &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self const&, F>)
constexpr auto transform (F &&function) const &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self &&, F>)
constexpr auto transform (F &&function) &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self const &&, F>)
constexpr auto transform (F &&function) const &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(bind), Self&, F>)
constexpr auto and_then (F &&function) &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(bind), Self const&, F>)
constexpr auto and_then (F &&function) const &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(bind), Self &&, F>)
constexpr auto and_then (F &&function) &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(bind), Self const &&, F>)
constexpr auto and_then (F &&function) const &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fail), Self&, F>)
constexpr auto or_else (F &&function) &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fail), Self const&, F>)
constexpr auto or_else (F &&function) const &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fail), Self &&, F>)
constexpr auto or_else (F &&function) &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fail), Self const &&, F>)
constexpr auto or_else (F &&function) const &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self&, F>)
constexpr auto transform_error (F &&function) &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self const&, F>)
constexpr auto transform_error (F &&function) const &-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self &&, F>)
constexpr auto transform_error (F &&function) &&-> decltype(auto)
 
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self const &&, F>)
constexpr auto transform_error (F &&function) const &&-> decltype(auto)
 

Friends

constexpr friend auto tag_invoke (types::Tag< enable_monad >, types::InPlaceType< Self >) -> bool
 

Member Function Documentation

◆ and_then() [1/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(bind), Self &&, F>)
auto di::function::monad::MonadInterface< Self >::and_then ( F && function) && -> decltype(auto)
inlineconstexpr

◆ and_then() [2/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(bind), Self&, F>)
auto di::function::monad::MonadInterface< Self >::and_then ( F && function) & -> decltype(auto)
inlineconstexpr

◆ and_then() [3/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(bind), Self const &&, F>)
auto di::function::monad::MonadInterface< Self >::and_then ( F && function) const && -> decltype(auto)
inlineconstexpr

◆ and_then() [4/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(bind), Self const&, F>)
auto di::function::monad::MonadInterface< Self >::and_then ( F && function) const & -> decltype(auto)
inlineconstexpr

◆ or_else() [1/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fail), Self &&, F>)
auto di::function::monad::MonadInterface< Self >::or_else ( F && function) && -> decltype(auto)
inlineconstexpr

◆ or_else() [2/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fail), Self&, F>)
auto di::function::monad::MonadInterface< Self >::or_else ( F && function) & -> decltype(auto)
inlineconstexpr

◆ or_else() [3/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fail), Self const &&, F>)
auto di::function::monad::MonadInterface< Self >::or_else ( F && function) const && -> decltype(auto)
inlineconstexpr

◆ or_else() [4/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fail), Self const&, F>)
auto di::function::monad::MonadInterface< Self >::or_else ( F && function) const & -> decltype(auto)
inlineconstexpr

◆ transform() [1/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self &&, F>)
auto di::function::monad::MonadInterface< Self >::transform ( F && function) && -> decltype(auto)
inlineconstexpr

◆ transform() [2/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self&, F>)
auto di::function::monad::MonadInterface< Self >::transform ( F && function) & -> decltype(auto)
inlineconstexpr

◆ transform() [3/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self const &&, F>)
auto di::function::monad::MonadInterface< Self >::transform ( F && function) const && -> decltype(auto)
inlineconstexpr

◆ transform() [4/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap), Self const&, F>)
auto di::function::monad::MonadInterface< Self >::transform ( F && function) const & -> decltype(auto)
inlineconstexpr

◆ transform_error() [1/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self &&, F>)
auto di::function::monad::MonadInterface< Self >::transform_error ( F && function) && -> decltype(auto)
inlineconstexpr

◆ transform_error() [2/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self&, F>)
auto di::function::monad::MonadInterface< Self >::transform_error ( F && function) & -> decltype(auto)
inlineconstexpr

◆ transform_error() [3/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self const &&, F>)
auto di::function::monad::MonadInterface< Self >::transform_error ( F && function) const && -> decltype(auto)
inlineconstexpr

◆ transform_error() [4/4]

template<typename Self>
template<typename F>
requires (concepts::Invocable<decltype(fmap_right), Self const&, F>)
auto di::function::monad::MonadInterface< Self >::transform_error ( F && function) const & -> decltype(auto)
inlineconstexpr

Friends And Related Symbol Documentation

◆ tag_invoke

template<typename Self>
friend auto tag_invoke ( types::Tag< enable_monad > ,
types::InPlaceType< Self >  ) -> bool
friend

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