|
constexpr | Expected ()=default |
|
constexpr | Expected (Expected const &)=delete |
|
constexpr | Expected (Expected const &)=default |
|
constexpr | Expected (Expected &&)=default |
|
template<typename U>
requires (concepts::ConstructibleFrom<T, U const&> && concepts::detail::ExpectedCanConvertConstructor<T, void, U, void>) |
constexpr | explicit (!concepts::ConvertibleTo< U const &, T >) Expected(Expected< U |
|
constexpr void const U &&concepts::detail::ExpectedCanConvertConstructor< T, void, U, void > constexpr | explicit (!concepts::ConvertibleTo< U, T >) Expected(Expected< U |
|
constexpr void const U &&concepts::detail::ExpectedCanConvertConstructor< T, void, U, void > constexpr void types::InPlace &&!concepts ::RemoveCVRefSameAs< U, Expected > &&!concepts ::Unexpected< U > &&concepts::ConstructibleFrom< T, U > constexpr | explicit (!concepts::ConvertibleTo< U, T >) Expected(U &&value) |
|
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) |
|
constexpr | ~Expected ()=default |
|
constexpr auto | operator= (Expected const &) -> Expected &requires(!concepts::CopyConstructible< T >)=delete |
|
constexpr auto | operator= (Expected const &) -> Expected &requires(concepts::CopyConstructible< T >)=default |
|
constexpr auto | operator= (Expected &&) -> Expected &requires(concepts::MoveConstructible< T >)=default |
|
template<typename U = T>
requires (!concepts::RemoveCVRefSameAs<Expected, U> && !concepts::Unexpected<U> && concepts::ConstructibleFrom<T, U>) |
constexpr auto | operator= (U &&value) -> 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 void | error () const & |
|
constexpr void | error () && |
|
template<concepts::ConvertibleTo< T > U>
requires (concepts::CopyConstructible<T>) |
constexpr auto | value_or (U &&) const &-> T |
|
template<concepts::ConvertibleTo< T > U>
requires (concepts::MoveConstructible<T>) |
constexpr auto | value_or (U &&) &&-> T |
|
constexpr auto | optional_value () const |
|
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 & |
|
auto | __try_did_fail () &&-> Expected |
|
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 |
|
constexpr friend void | tag_invoke (types::Tag< util::swap >, Expected &a, Expected &b) |
|
template<concepts::EqualityComparableWith< T > U, typename 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<typename G> |
constexpr friend auto | operator== (Expected const &, Unexpected< G > const &) -> bool |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F, typename U = meta::UnwrapRefDecay<meta::InvokeResult<F, meta::Like<Self, T>>>> |
constexpr friend auto | tag_invoke (types::Tag< function::monad::fmap >, Self &&self, F &&function) -> Expected< U, void > |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F, typename R = meta::InvokeResult<F, meta::Like<Self, T>>>
requires (concepts::Expected<R>) |
constexpr friend auto | tag_invoke (types::Tag< function::monad::bind >, Self &&self, F &&function) -> R |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F>
requires (concepts::ConstructibleFrom<Expected, Self>) |
constexpr friend auto | tag_invoke (types::Tag< function::monad::fail >, Self &&self, F &&) -> Expected |
|
template<concepts::RemoveCVRefSameAs< Expected > Self, typename F>
requires (concepts::ConstructibleFrom<Expected, Self>) |
constexpr friend auto | tag_invoke (types::Tag< function::monad::fmap_right >, Self &&self, F &&) -> Expected |
|