|
constexpr | Expected ()=default |
|
constexpr | Expected (Expected const &)=default |
|
constexpr | Expected (Expected const &)=delete |
|
constexpr | Expected (Expected &&)=default |
|
template<typename F>
requires (concepts::ConstructibleFrom<E, F const&> && concepts::detail::ExpectedCanConvertConstructor<void, E, void, F>) |
constexpr | explicit (!concepts::ConvertibleTo< F const &, E >) Expected(Expected< void |
|
constexpr F const F &&concepts::detail::ExpectedCanConvertConstructor< void, E, void, F > constexpr | explicit (!concepts::ConvertibleTo< F, E >) Expected(Expected< void |
|
constexpr F const F &&concepts::detail::ExpectedCanConvertConstructor< void, E, void, F > constexpr F G const &constexpr | explicit (!concepts::ConvertibleTo< G const &, E >) Expected(Unexpected< G > const &error) |
|
template<typename G>
requires (concepts::ConstructibleFrom<E, G>) |
constexpr | explicit (!concepts::ConvertibleTo< G, E >) Expected(Unexpected< G > &&error) |
|
constexpr | Expected (types::InPlace) |
|
template<typename... Args>
requires (concepts::ConstructibleFrom<E, Args...>) |
constexpr | Expected (types::Unexpect, Args &&... args) |
|
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<E, std::initializer_list<U>, Args...>) |
constexpr | Expected (types::Unexpect, std::initializer_list< U > list, Args &&... args) |
|
constexpr | ~Expected ()=default |
|
constexpr auto | operator= (Expected const &) -> Expected &requires(!concepts::CopyConstructible< E >)=delete |
|
constexpr auto | operator= (Expected const &) -> Expected &requires(concepts::CopyConstructible< E >)=default |
|
constexpr auto | operator= (Expected &&) -> Expected &requires(concepts::MoveConstructible< E >)=default |
|
template<typename G>
requires (concepts::ConstructibleFrom<E, G const&>) |
constexpr auto | operator= (Unexpected< G > const &error) -> Expected & |
|
template<typename G>
requires (concepts::ConstructibleFrom<E, G>) |
constexpr auto | operator= (Unexpected< G > &&error) -> Expected & |
|
constexpr | operator bool () const |
|
constexpr auto | has_value () const -> bool |
|
constexpr void | emplace () |
|
constexpr void | operator* () const |
|
constexpr void | value () const & |
|
constexpr void | value () && |
|
constexpr auto | error () &-> E & |
|
constexpr auto | error () const &-> E const & |
|
constexpr auto | error () &&-> E && |
|
constexpr auto | error () const &&-> E const && |
|
constexpr auto | __try_did_fail () &&-> Unexpected< E > |
|
constexpr auto | __try_did_succeed () &&-> Expected |
|
constexpr void | __try_move_out () && |
|
constexpr auto | transform (F &&function) &-> decltype(auto) |
|
constexpr auto | transform (F &&function) const &-> decltype(auto) |
|
constexpr auto | transform (F &&function) &&-> decltype(auto) |
|
constexpr auto | transform (F &&function) const &&-> decltype(auto) |
|
constexpr auto | and_then (F &&function) &-> decltype(auto) |
|
constexpr auto | and_then (F &&function) const &-> decltype(auto) |
|
constexpr auto | and_then (F &&function) &&-> decltype(auto) |
|
constexpr auto | and_then (F &&function) const &&-> decltype(auto) |
|
constexpr auto | or_else (F &&function) &-> decltype(auto) |
|
constexpr auto | or_else (F &&function) const &-> decltype(auto) |
|
constexpr auto | or_else (F &&function) &&-> decltype(auto) |
|
constexpr auto | or_else (F &&function) const &&-> decltype(auto) |
|
constexpr auto | transform_error (F &&function) &-> decltype(auto) |
|
constexpr auto | transform_error (F &&function) const &-> decltype(auto) |
|
constexpr auto | transform_error (F &&function) &&-> decltype(auto) |
|
constexpr auto | transform_error (F &&function) const &&-> decltype(auto) |
|
|
template<typename U, typename G> |
class | Expected |
|
constexpr friend void | tag_invoke (types::Tag< util::swap >, Expected &a, Expected &b) |
|
template<concepts::EqualityComparableWith< E > G> |
constexpr friend auto | operator== (Expected const &a, Expected< void, G > const &b) -> bool |
|
template<concepts::EqualityComparableWith< E > G> |
constexpr friend auto | operator== (Expected const &a, Unexpected< G > const &b) -> bool |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F, typename U = meta::UnwrapRefDecay<meta::InvokeResult<F>>>
requires (concepts::ConstructibleFrom<E, meta::Like<Self, E>>) |
constexpr friend auto | tag_invoke (types::Tag< function::monad::fmap >, Self &&self, F &&function) -> Expected< U, E > |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F, typename R = meta::InvokeResult<F>>
requires (concepts::Expected<R> && concepts::ConvertibleTo<meta::Like<Self, E>, meta::ExpectedError<R>>) |
constexpr friend auto | tag_invoke (types::Tag< function::monad::bind >, Self &&self, F &&function) -> R |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F, typename R = meta::InvokeResult<F, meta::Like<Self, E>>>
requires (concepts::Expected<R> && concepts::LanguageVoid<meta::ExpectedValue<R>>) |
constexpr friend auto | tag_invoke (types::Tag< function::monad::fail >, Self &&self, F &&function) -> R |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F, typename G = meta::UnwrapRefDecay<meta::InvokeResult<F, meta::Like<Self, E>>>> |
constexpr friend auto | tag_invoke (types::Tag< function::monad::fmap_right >, Self &&self, F &&function) -> Expected< void, G > |
|