di 0.1.0
Loading...
Searching...
No Matches
di::vocab::Optional< void > Class Reference

#include <di/vocab/optional/optional_void.h>

Inheritance diagram for di::vocab::Optional< void >:
di::function::monad::MonadInterface< Optional< void > >

Public Types

using Value = void

Public Member Functions

constexpr Optional ()=default
constexpr Optional (NullOpt)
constexpr Optional (Optional const &)=default
constexpr Optional (Optional &&)=default
constexpr Optional (InPlace)
constexpr Optional (bool value)
constexpr ~Optional ()=default
constexpr auto operator= (Optional const &) -> Optional &=default
constexpr auto operator= (Optional &&) -> Optional &=default
constexpr auto operator= (NullOpt) -> Optional &
constexpr auto operator= (bool value) -> Optional &
constexpr auto has_value () const -> bool
constexpr operator bool () const
constexpr void operator* () const
constexpr void value () const &
constexpr void value () &&
constexpr void reset ()
constexpr void emplace ()
constexpr auto __try_did_fail () &&-> NullOpt
constexpr auto __try_did_succeed () &&-> Optional
constexpr void __try_move_out () &&
Public Member Functions inherited from di::function::monad::MonadInterface< Optional< void > >
constexpr auto transform (F &&function) &-> decltype(auto)
constexpr auto and_then (F &&function) &-> decltype(auto)
constexpr auto or_else (F &&function) &-> decltype(auto)
constexpr auto transform_error (F &&function) &-> decltype(auto)

Friends

constexpr friend auto operator== (Optional const &a, Optional const &b) -> bool
constexpr friend auto operator== (Optional const &a, bool b) -> bool
constexpr friend auto operator== (Optional const &a, NullOpt) ->bool
constexpr friend auto operator<=> (Optional const &a, Optional const &b) -> strong_ordering
constexpr friend auto operator<=> (Optional const &a, bool b) -> strong_ordering
constexpr friend auto operator<=> (Optional const &a, NullOpt) -> strong_ordering
template<concepts::DecaySameAs< Optional > Self, typename F, typename R = meta::InvokeResult<F>>
requires (concepts::Optional<R>)
constexpr friend auto tag_invoke (types::Tag< function::monad::bind >, Self &&self, F &&f) -> R
template<concepts::DecaySameAs< Optional > Self, typename F, typename U = meta::UnwrapRefDecay<meta::InvokeResult<F>>>
constexpr friend auto tag_invoke (types::Tag< function::monad::fmap >, Self &&self, F &&f) -> Optional< U >
template<concepts::DecaySameAs< Optional > Self, concepts::InvocableTo< Optional > F>
constexpr friend auto tag_invoke (types::Tag< function::monad::fail >, Self &&self, F &&f) -> Optional

Member Typedef Documentation

◆ Value

using di::vocab::Optional< void >::Value = void

Constructor & Destructor Documentation

◆ Optional() [1/6]

di::vocab::Optional< void >::Optional ( )
constexprdefault

◆ Optional() [2/6]

di::vocab::Optional< void >::Optional ( NullOpt )
inlineconstexpr

◆ Optional() [3/6]

di::vocab::Optional< void >::Optional ( Optional< void > const & )
constexprdefault

◆ Optional() [4/6]

di::vocab::Optional< void >::Optional ( Optional< void > && )
constexprdefault

◆ Optional() [5/6]

di::vocab::Optional< void >::Optional ( InPlace )
inlineexplicitconstexpr

◆ Optional() [6/6]

di::vocab::Optional< void >::Optional ( bool value)
inlineexplicitconstexpr

◆ ~Optional()

di::vocab::Optional< void >::~Optional ( )
constexprdefault

Member Function Documentation

◆ __try_did_fail()

auto di::vocab::Optional< void >::__try_did_fail ( ) &&->NullOpt
inlineconstexpr

◆ __try_did_succeed()

auto di::vocab::Optional< void >::__try_did_succeed ( ) &&->Optional
inlineconstexpr

◆ __try_move_out()

void di::vocab::Optional< void >::__try_move_out ( ) &&
inlineconstexpr

◆ emplace()

void di::vocab::Optional< void >::emplace ( )
inlineconstexpr

◆ has_value()

auto di::vocab::Optional< void >::has_value ( ) const->bool
inlineconstexpr

◆ operator bool()

di::vocab::Optional< void >::operator bool ( ) const
inlineexplicitconstexpr

◆ operator*()

void di::vocab::Optional< void >::operator* ( ) const
inlineconstexpr

◆ operator=() [1/4]

auto di::vocab::Optional< void >::operator= ( bool value) ->Optional &
inlineconstexpr

◆ operator=() [2/4]

auto di::vocab::Optional< void >::operator= ( NullOpt ) ->Optional &
inlineconstexpr

◆ operator=() [3/4]

auto di::vocab::Optional< void >::operator= ( Optional< void > && ) ->Optional &=default
constexprdefault

◆ operator=() [4/4]

auto di::vocab::Optional< void >::operator= ( Optional< void > const & ) ->Optional &=default
constexprdefault

◆ reset()

void di::vocab::Optional< void >::reset ( )
inlineconstexpr

◆ value() [1/2]

void di::vocab::Optional< void >::value ( ) &&
inlineconstexpr

◆ value() [2/2]

void di::vocab::Optional< void >::value ( ) const &
inlineconstexpr

◆ operator<=> [1/3]

friend auto operator<=> ( Optional< void > const & a,
bool b )->strong_ordering
friend

◆ operator<=> [2/3]

friend auto operator<=> ( Optional< void > const & a,
NullOpt  )->strong_ordering
friend

◆ operator<=> [3/3]

friend auto operator<=> ( Optional< void > const & a,
Optional< void > const & b )->strong_ordering
friend

◆ operator== [1/3]

friend auto operator== ( Optional< void > const & a,
bool b )->bool
friend

◆ operator== [2/3]

friend auto operator== ( Optional< void > const & a,
NullOpt  )->bool
friend

◆ operator== [3/3]

friend auto operator== ( Optional< void > const & a,
Optional< void > const & b )->bool
friend

◆ tag_invoke [1/3]

template<concepts::DecaySameAs< Optional > Self, typename F, typename R = meta::InvokeResult<F>>
requires (concepts::Optional<R>)
friend auto tag_invoke ( types::Tag< function::monad::bind > ,
Self && self,
F && f )->R
friend

◆ tag_invoke [2/3]

template<concepts::DecaySameAs< Optional > Self, concepts::InvocableTo< Optional > F>
friend auto tag_invoke ( types::Tag< function::monad::fail > ,
Self && self,
F && f )->Optional
friend

◆ tag_invoke [3/3]

template<concepts::DecaySameAs< Optional > Self, typename F, typename U = meta::UnwrapRefDecay<meta::InvokeResult<F>>>
friend auto tag_invoke ( types::Tag< function::monad::fmap > ,
Self && self,
F && f )->Optional< U >
friend

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