|
constexpr | expected (expected const &rhs)=default |
|
constexpr | expected (expected const &rhs) |
|
constexpr | expected (expected &&) noexcept(std::is_nothrow_move_constructible_v< T > &&std::is_nothrow_move_constructible_v< E >)=default |
|
constexpr | expected (expected &&rhs) noexcept(std::is_nothrow_move_constructible_v< T > &&std::is_nothrow_move_constructible_v< E >) |
|
template<class U , class G >
requires detail::expected_constructible_from_other<T, E, U, G, U const&, G const&> |
constexpr | explicit (!std::convertible_to< U const &, T >||!std::convertible_to< G const &, E >) expected(expected< U |
|
| if (rhs.has_value()) |
|
template<class U , class G >
requires detail::expected_constructible_from_other<T, E, U, G, U, G> |
constexpr | explicit (!std::convertible_to< U, T >||!std::convertible_to< G, E >) expected(expected< U |
|
| if (rhs.has_value()) |
|
template<class U = T>
requires (!std::same_as<std::remove_cvref_t<U>, std::in_place_t>) && (!std::same_as<expected<T, E>, std::remove_cvref_t<U>>) && (!detail::is_unexpected<U>) && std::constructible_from<T, U> |
constexpr | explicit (!std::convertible_to< U, T >) expected(U &&v) |
|
template<class G >
requires std::constructible_from<E, G const&> |
constexpr | explicit (!std::convertible_to< G const &, E >) expected(unexpected< G > const &e) |
|
template<class G >
requires std::constructible_from<E, G> |
constexpr | explicit (!std::convertible_to< G, E >) expected(unexpected< G > &&e) |
|
template<class... Args>
requires std::constructible_from<T, Args...> |
constexpr | expected (std::in_place_t, Args &&... args) |
|
template<class U , class... Args>
requires std::constructible_from<T, std::initializer_list<U>&, Args...> |
constexpr | expected (std::in_place_t, std::initializer_list< U > il, Args &&... args) |
|
template<class... Args>
requires std::constructible_from<E, Args...> |
constexpr | expected (unexpect_t, Args &&... args) |
|
template<class U , class... Args>
requires std::constructible_from<E, std::initializer_list<U>&, Args...> |
constexpr | expected (unexpect_t, std::initializer_list< U > il, Args &&... args) |
|
constexpr auto | operator= (expected const &rhs) -> expected & |
|
constexpr auto | operator= (expected &&rhs) noexcept(std::is_nothrow_move_assignable_v< T > &&std::is_nothrow_move_constructible_v< T > &&std::is_nothrow_move_assignable_v< E > &&std::is_nothrow_move_constructible_v< E >) -> expected & |
|
template<class U = T> |
constexpr auto | operator= (U &&rhs) -> expected &requires(!std::same_as< expected, std::remove_cvref_t< U > >) &&(!detail::is_unexpected< std::remove_cvref_t< U > >) &&std::constructible_from< T, U > &&std::is_assignable_v< T &, U > &&(std::is_nothrow_constructible_v< T, U >||std::is_nothrow_move_constructible_v< T >||std::is_nothrow_move_constructible_v< E >) |
|
template<class G >
requires std::constructible_from<E, G const&> && std::is_assignable_v<E&, G const&> && (std::is_nothrow_constructible_v<E, G const&> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) |
constexpr auto | operator= (unexpected< G > const &e) -> expected & |
|
template<class G >
requires std::constructible_from<E, G> && std::is_assignable_v<E&, G> && (std::is_nothrow_constructible_v<E, G> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) |
constexpr auto | operator= (unexpected< G > &&e) -> expected & |
|
template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...> |
constexpr auto | emplace (Args &&... args) noexcept -> T & |
|
template<class U , class... Args>
requires std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...> |
constexpr auto | emplace (std::initializer_list< U > il, Args &&... args) noexcept -> T & |
|
constexpr void | swap (expected &rhs) noexcept(std::is_nothrow_constructible_v< T > &&std::is_nothrow_swappable_v< T > &&std::is_nothrow_move_constructible_v< E > &&std::is_nothrow_swappable_v< E >) |
|
constexpr auto | operator-> () const noexcept -> T const * |
|
constexpr auto | operator-> () noexcept -> T * |
|
constexpr auto | operator* () const &noexcept -> T const & |
|
constexpr auto | operator* () &noexcept -> T & |
|
constexpr auto | operator* () const &&noexcept -> T const && |
|
constexpr auto | operator* () &&noexcept -> T && |
|
constexpr | operator bool () const noexcept |
|
constexpr auto | has_value () const noexcept -> bool |
|
constexpr auto | value () const &-> T const & |
|
constexpr auto | value () &-> T & |
|
constexpr auto | value () const &&-> T const && |
|
constexpr auto | value () &&-> T && |
|
constexpr auto | error () const &-> E const & |
|
constexpr auto | error () &-> E & |
|
constexpr auto | error () const &&-> E const && |
|
constexpr auto | error () &&-> E && |
|
template<class U >
requires std::is_copy_constructible_v<T> && std::is_convertible_v<U, T> |
constexpr auto | value_or (U &&v) const &-> T |
|
template<class U >
requires std::is_move_constructible_v<T> && std::is_convertible_v<U, T> |
constexpr auto | value_or (U &&v) &&-> T |
|
template<class F , class V = T&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_copy_constructible_v<E> && std::is_copy_constructible_v<T> |
constexpr auto | and_then (F &&f) & |
|
template<class F , class V = T const&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_copy_constructible_v<E> && std::is_copy_constructible_v<T> |
constexpr auto | and_then (F &&f) const & |
|
template<class F , class V = T&&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_move_constructible_v<E> && std::is_move_constructible_v<T> |
constexpr auto | and_then (F &&f) && |
|
template<class F , class V = T const&&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_move_constructible_v<E> && std::is_move_constructible_v<T> |
constexpr auto | and_then (F &&f) const && |
|
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, T> && std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> |
constexpr auto | or_else (F &&f) & |
|
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, T> && std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> |
constexpr auto | or_else (F &&f) const & |
|
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, T> && std::is_move_constructible_v<T> && std::is_move_constructible_v<E> |
constexpr auto | or_else (F &&f) && |
|
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, T> && std::is_move_constructible_v<T> && std::is_move_constructible_v<E> |
constexpr auto | or_else (F &&f) const && |
|
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> |
constexpr auto | or_else (F &&f) & |
|
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> |
constexpr auto | or_else (F &&f) const & |
|
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_move_constructible_v<T> && std::is_move_constructible_v<E> && std::is_copy_constructible_v<E> |
constexpr auto | or_else (F &&f) && |
|
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_move_constructible_v<T> && std::is_move_constructible_v<E> && std::is_copy_constructible_v<E> |
constexpr auto | or_else (F &&f) const && |
|
template<class F , class V = T&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<E> && std::is_copy_constructible_v<T> |
constexpr auto | transform (F &&f) & |
|
template<class F , class V = T const&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<E> && std::is_copy_constructible_v<T> |
constexpr auto | transform (F &&f) const & |
|
template<class F , class V = T&&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<E> && std::is_move_constructible_v<T> |
constexpr auto | transform (F &&f) && |
|
template<class F , class V = T const&&, class U = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<E> && std::is_move_constructible_v<T> |
constexpr auto | transform (F &&f) const && |
|
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> |
constexpr auto | transform_error (F &&f) & |
|
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> |
constexpr auto | transform_error (F &&f) const & |
|
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<T> && std::is_move_constructible_v<E> |
constexpr auto | transform_error (F &&f) && |
|
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<T> && std::is_move_constructible_v<E> |
constexpr auto | transform_error (F &&f) const && |
|
template<detail::non_void_destructible T, std::destructible E>
class plg::expected< T, E >
Definition at line 194 of file expected.hpp.