|
constexpr | expected ()=default |
|
constexpr | expected (const expected &rhs)=default |
|
constexpr | expected (expected &&rhs) noexcept=default |
|
template<class U , class G _ENABLE_IF> |
constexpr | expected (const expected< U, G > &rhs) |
|
template<class U , class G _ENABLE_IF> |
constexpr | expected (const expected< U, G > &rhs) |
|
template<class U , class G _ENABLE_IF> |
constexpr | expected (expected< U, G > &&rhs) |
|
template<class U , class G _ENABLE_IF> |
constexpr | expected (expected< U, G > &&rhs) |
|
template<class U = T _ENABLE_IF( std::is_constructible_v<T, U&&> && !std::is_same_v<std::remove_cv_t<std::remove_reference_t<U>>, std::in_place_t> && !std::is_same_v<expected<T, E>, std::remove_cv_t<std::remove_reference_t<U>>> && !std::is_same_v<unexpected<E>, std::remove_cv_t<std::remove_reference_t<U>>> && std::is_convertible_v<U&&, T> )> |
constexpr | expected (U &&v) |
|
template<class U = T _ENABLE_IF( std::is_constructible_v<T, U&&> && !std::is_same_v<std::remove_cv_t<std::remove_reference_t<U>>, std::in_place_t> && !std::is_same_v<expected<T, E>, std::remove_cv_t<std::remove_reference_t<U>>> && !std::is_same_v<unexpected<E>, std::remove_cv_t<std::remove_reference_t<U>>> && !std::is_convertible_v<U&&, T> )> |
constexpr | expected (U &&v) |
|
template<class G = E _ENABLE_IF( std::is_constructible_v<E, const G&> && std::is_convertible_v<const G&, E> )> |
constexpr | expected (const unexpected< G > &e) |
|
template<class G = E _ENABLE_IF( std::is_constructible_v<E, const G&> && !std::is_convertible_v<const G&, E> )> |
constexpr | expected (const unexpected< G > &e) |
|
template<class G = E _ENABLE_IF( std::is_constructible_v<E, G&&> && std::is_convertible_v<G&&, E> )> |
constexpr | expected (unexpected< G > &&e) |
|
template<class G = E _ENABLE_IF( std::is_constructible_v<E, G&&> && !std::is_convertible_v<G&&, E> )> |
constexpr | expected (unexpected< G > &&e) |
|
template<class... Args _ENABLE_IF> |
constexpr | expected (std::in_place_t, Args &&... args) |
|
template<class U , class... Args _ENABLE_IF> |
constexpr | expected (std::in_place_t, std::initializer_list< U > il, Args &&... args) |
|
template<class... Args _ENABLE_IF> |
constexpr | expected (unexpect_t, Args &&... args) |
|
template<class U , class... Args _ENABLE_IF> |
constexpr | expected (unexpect_t, std::initializer_list< U > il, Args &&... args) |
|
| ~expected ()=default |
|
expected & | operator= (const expected &rhs)=default |
|
expected & | operator= (expected &&rhs) noexcept(std::is_nothrow_move_assignable_v< T > &&std::is_nothrow_move_assignable_v< E >)=default |
|
template<class U = T _ENABLE_IF( !std::is_void_v<T> && !std::is_same_v<expected<T, E>, std::remove_cv_t<std::remove_reference_t<U>>> && !std::conjunction_v<std::is_scalar<T>, std::is_same<T, std::decay_t<U>>> && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> && std::is_nothrow_move_constructible_v<E>)> |
expected & | operator= (U &&rhs) |
|
template<class G = E> |
expected & | operator= (const unexpected< G > &rhs) |
|
template<class G = E _ENABLE_IF( std::is_nothrow_move_constructible_v<G> && std::is_move_assignable_v<G> )> |
expected & | operator= (unexpected< G > &&rhs) |
|
template<class... Args _ENABLE_IF> |
T & | emplace (Args &&... args) |
|
template<class U , class... Args _ENABLE_IF> |
T & | emplace (std::initializer_list< U > il, Args &&... args) |
|
template<typename U = T, typename = std::enable_if_t<( std::is_swappable_v<U> && std::is_swappable_v<E> && (std::is_move_constructible_v<U> || std::is_move_constructible_v<E>))>> |
void | swap (expected &rhs) noexcept(std::is_nothrow_move_constructible_v< T > &&std::is_nothrow_swappable_v< T > &&std::is_nothrow_move_constructible_v< E > &&std::is_nothrow_swappable_v< E >) |
|
constexpr const T * | operator-> () const |
|
constexpr T * | operator-> () |
|
constexpr const T & | operator* () const & |
|
constexpr T & | operator* () & |
|
constexpr const T && | operator* () const && |
|
constexpr T && | operator* () && |
|
constexpr bool | has_value () const noexcept |
|
constexpr bool | ok () const noexcept |
|
constexpr const T & | value () const & |
|
constexpr T & | value () & |
|
constexpr const T && | value () const && |
|
constexpr T && | value () && |
|
constexpr const E & | error () const & |
|
constexpr E & | error () & |
|
constexpr const E && | error () const && |
|
constexpr E && | error () && |
|
template<class U _ENABLE_IF> |
constexpr T | value_or (U &&v) const & |
|
template<class U _ENABLE_IF> |
constexpr T | value_or (U &&v) && |
|
|
template<class T1 , class E1 , class T2 , class E2 > |
constexpr bool | operator== (const expected< T1, E1 > &x, const expected< T2, E2 > &y) |
|
template<class T1 , class E1 , class T2 , class E2 > |
constexpr bool | operator!= (const expected< T1, E1 > &x, const expected< T2, E2 > &y) |
|
template<class T1 , class E1 , class E2 > |
constexpr bool | operator== (const expected< T1, E1 > &, const unexpected< E2 > &) |
|
template<class T1 , class E1 , class E2 > |
constexpr bool | operator== (const unexpected< E2 > &, const expected< T1, E1 > &) |
|
template<class T1 , class E1 , class E2 > |
constexpr bool | operator!= (const expected< T1, E1 > &, const unexpected< E2 > &) |
|
template<class T1 , class E1 , class E2 > |
constexpr bool | operator!= (const unexpected< E2 > &, const expected< T1, E1 > &) |
|
template<class T1 , class E1 > |
void | swap (expected< T1, E1 > &x, expected< T1, E1 > &y) noexcept(noexcept(x.swap(y))) |
|