|
constexpr | Expected () |
|
constexpr | Expected (Expected const &)=default |
|
constexpr | Expected (Expected &&)=default |
|
constexpr | Expected (Expected const &)=delete |
|
constexpr | Expected (Expected const &other) |
|
constexpr | Expected (Expected &&other) |
|
template<typename U, typename G>
requires ((!concepts::SameAs<U, T> || !concepts::SameAs<G, E>) && concepts::ConstructibleFrom<T, U const&> && concepts::ConstructibleFrom<E, G const&> && concepts::detail::ExpectedCanConvertConstructor<T, E, U, G>) |
constexpr | explicit (!concepts::ConvertibleTo< U const &, T >||!concepts::ConvertibleTo< G const &, E >) Expected(Expected< U |
|
template<typename U, typename G>
requires ((!concepts::SameAs<U, T> || !concepts::SameAs<G, E>) && concepts::ConstructibleFrom<T, U> && concepts::ConstructibleFrom<E, G> && concepts::detail::ExpectedCanConvertConstructor<T, E, U, G>) |
constexpr | explicit (!concepts::ConvertibleTo< U, T >||!concepts::ConvertibleTo< G, E >) Expected(Expected< U |
|
template<typename U = T>
requires (!concepts::RemoveCVRefSameAs<U, types::InPlace> && !concepts::RemoveCVRefSameAs<U, Expected> && !concepts::Unexpected<U> && concepts::ConstructibleFrom<T, U>) |
constexpr | explicit (!detail::ConvertibleToWorkaround< Expected, U, T >) Expected(U &&value) |
|
template<typename G>
requires (concepts::ConstructibleFrom<E, 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) |
|
template<typename... Args>
requires (concepts::ConstructibleFrom<T, Args...>) |
constexpr | Expected (types::InPlace, Args &&... args) |
|
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<T, std::initializer_list<U>, Args...>) |
constexpr | Expected (types::InPlace, std::initializer_list< U > list, Args &&... args) |
|
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 | ~Expected () |
|
constexpr auto | operator= (Expected const &other) -> Expected &requires(concepts::CopyConstructible< T > &&concepts::CopyConstructible< E >) |
|
constexpr auto | operator= (Expected &&other) -> Expected &requires(concepts::MoveConstructible< T > &&concepts::MoveConstructible< E >) |
|
template<typename U = T>
requires (!concepts::RemoveCVRefSameAs<Expected, U> && !concepts::Unexpected<U> && concepts::ConstructibleFrom<T, U>) |
constexpr auto | operator= (U &&value) -> Expected & |
|
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 auto | operator-> () |
|
constexpr auto | operator-> () const |
|
constexpr auto | operator* () &-> T & |
|
constexpr auto | operator* () const &-> T const & |
|
constexpr auto | operator* () &&-> T && |
|
constexpr auto | operator* () const &&-> T const && |
|
constexpr | operator bool () const |
|
constexpr auto | has_value () const -> bool |
|
constexpr auto | value () &-> T & |
|
constexpr auto | value () const &-> T const & |
|
constexpr auto | value () &&-> T && |
|
constexpr auto | value () const &&-> T const && |
|
constexpr auto | error () &-> E & |
|
constexpr auto | error () const &-> E const & |
|
constexpr auto | error () &&-> E && |
|
constexpr auto | error () const &&-> E const && |
|
template<concepts::ConvertibleTo< T > U>
requires (concepts::CopyConstructible<T>) |
constexpr auto | value_or (U &&default_value) const &-> T |
|
template<concepts::ConvertibleTo< T > U>
requires (concepts::MoveConstructible<T>) |
constexpr auto | value_or (U &&default_value) &&-> T |
|
constexpr auto | optional_value () const &-> Optional< T > requires(concepts::CopyConstructible< T >) |
|
constexpr auto | optional_value () &&-> Optional< T > requires(concepts::MoveConstructible< T >) |
|
template<typename... Args>
requires (concepts::ConstructibleFrom<T, Args...>) |
constexpr auto | emplace (Args &&... args) -> T & |
|
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<T, std::initializer_list<U>, Args...>) |
constexpr auto | emplace (std::initializer_list< U > list, Args &&... args) -> T & |
|
constexpr auto | __try_did_fail () &&-> Unexpected< E > |
|
constexpr auto | __try_did_succeed () &&-> Expected |
|
constexpr auto | __try_move_out () &&-> T && |
|
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 |
|
template<concepts::EqualityComparableWith< T > U, concepts::EqualityComparableWith< E > G> |
constexpr friend auto | operator== (Expected const &a, Expected< U, G > const &b) -> bool |
|
template<typename U>
requires (meta::ExpectedRank<U> < meta::ExpectedRank<Expected> && concepts::EqualityComparableWith<T, U>) |
constexpr friend auto | operator== (Expected const &a, U 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, meta::Like<Self, T>>>>
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, meta::Like<Self, T>>>
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::ConvertibleTo<meta::Like<Self, T>, 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< T, G > |
|