Navigation :
Prerequisites
Build and install
Review of Error Handling Frameworks
Motivation
Future ABI stability guarantees
Tutorial
Recipes
Experimental
API reference
-
Macros
-
Concepts
-
Converters
-
Traits
-
Policies
-
Types
--
`basic_outcome<T, EC, EP, NoValuePolicy>`
--- `basic_outcome() = delete`
--- `basic_outcome(basic_outcome &&)`
--- `basic_outcome(const basic_outcome &)`
--- `basic_outcome &operator=(basic_outcome &&)`
--- `basic_outcome &operator=(const basic_outcome &)`
--- `~basic_outcome()`
--- `basic_outcome(Args...) = delete`
--- `basic_outcome(X &&) = delete`
--- `basic_outcome(R &&)`
--- `basic_outcome(S &&)`
--- `basic_outcome(ErrorCondEnum &&)`
--- `basic_outcome(P &&)`
--- `basic_outcome(S &&, P &&)`
--- `explicit basic_outcome(concepts::value_or_error<T, E> &&)`
--- `explicit basic_outcome(const basic_outcome<A, B, C, D> &)`
--- `explicit basic_outcome(basic_outcome<A, B, C, D> &&)`
--- `explicit basic_outcome(const basic_result<A, B, C> &)`
--- `explicit basic_outcome(basic_result<A, B, C> &&)`
--- `explicit basic_outcome(const basic_result<A, B, C> &)`
--- `explicit basic_outcome(basic_result<A, B, C> &&)`
--- `explicit basic_outcome(in_place_type_t<value_type_if_enabled>, Args ...)`
--- `explicit basic_outcome(in_place_type_t<value_type_if_enabled>, std::initializer_list<U>, Args ...)`
--- `explicit basic_outcome(in_place_type_t<error_type_if_enabled>, Args ...)`
--- `explicit basic_outcome(in_place_type_t<error_type_if_enabled>, std::initializer_list<U>, Args ...)`
--- `explicit basic_outcome(in_place_type_t<exception_type_if_enabled>, Args ...)`
--- `explicit basic_outcome(in_place_type_t<exception_type_if_enabled>, std::initializer_list<U>, Args ...)`
--- `basic_outcome(A1 &&, A2 &&, Args ...)`
--- `basic_outcome(const success_type<T> &)`
--- `basic_outcome(success_type<T> &&)`
--- `basic_outcome(const failure_type<EC> &)`
--- `basic_outcome(failure_type<EC> &&)`
--- `basic_outcome(const failure_type<EC> &)`
--- `basic_outcome(failure_type<EC> &&)`
--- `basic_outcome(const failure_type<EP> &)`
--- `basic_outcome(failure_type<EP> &&)`
--- `basic_outcome(const failure_type<EC, EP> &)`
--- `basic_outcome(failure_type<EC, EP> &&)`
--- `explicit operator bool() const noexcept`
--- `bool has_value() const noexcept`
--- `bool has_error() const noexcept`
--- `bool has_exception() const noexcept`
--- `bool has_failure() const noexcept`
--- `value_type &assume_value() & noexcept`
--- `const value_type &assume_value() const & noexcept`
--- `value_type &&assume_value() && noexcept`
--- `const value_type &&assume_value() const && noexcept`
--- `value_type &value() &`
--- `const value_type &value() const &`
--- `value_type &&value() &&`
--- `const value_type &&value() const &&`
--- `error_type &assume_error() & noexcept`
--- `const error_type &assume_error() const & noexcept`
--- `error_type &&assume_error() && noexcept`
--- `const error_type &&assume_error() const && noexcept`
--- `error_type &error() &`
--- `const error_type &error() const &`
--- `error_type &&error() &&`
--- `const error_type &&error() const &&`
--- `exception_type &assume_exception() & noexcept`
--- `const exception_type &assume_exception() const & noexcept`
--- `const exception_type &&assume_exception() const && noexcept`
--- `exception_type &&assume_exception() && noexcept`
--- `exception_type &exception() &`
--- `const exception_type &exception() const &`
--- `exception_type &&exception() &&`
--- `const exception_type &&exception() const &&`
--- `exception_type failure() const noexcept`
--- `bool operator==(const basic_result<A, B, C> &) const`
--- `bool operator==(const basic_outcome<A, B, C, D> &) const`
--- `bool operator==(const success_type<A> &) const`
--- `bool operator==(const failure_type<A, B> &) const`
--- `bool operator!=(const basic_result<A, B, C> &) const`
--- `bool operator!=(const basic_outcome<A, B, C, D> &) const`
--- `bool operator!=(const success_type<A> &) const`
--- `bool operator!=(const failure_type<A, B> &) const`
--- `void swap(basic_outcome &)`
--- `failure_type<error_type, exception_type> as_failure() const &`
--- `failure_type<error_type, exception_type> as_failure() &&`
--
`basic_result<T, E, NoValuePolicy>`
-- `bad_outcome_access`
-- `bad_result_access_with<EC>`
-- `bad_result_access`
-- `eager<T, Executor = void>/atomic_eager<T, Executor = void>`
-- `failure_type<EC, EP = void>`
-- `generator<T, Executor = void>`
-- `in_place_type_t<T>`
-- `lazy<T, Executor = void>/atomic_lazy<T, Executor = void>`
-- `success_type<T>`
-
Aliases
-
Functions
Frequently asked questions
Videos
Changelog
History
bool operator==(const basic_result<A, B, C> &) const
Returns true if this outcome compares equal to the other result. Comparison is done using operator==
on value_type
or error_type
if the currently chosen state is the same for both outcome and result, otherwise false is returned. Note that if the outcome is excepted, it will never compare equal to a result.
Requires : operator==
must be a valid expression between value_type
and A
, and between error_type
and B
. If value_type
is void
, then so must be A
; similarly for error_type
and B
.
Complexity : Whatever the underlying operator==
have. Constexpr and noexcept of underlying operations is propagated.
Guarantees : None.