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
explicit basic_outcome(const basic_outcome<A, B, C, D> &)
Explicit converting copy constructor from compatible basic_outcome
. Calls void on_outcome_copy_construction(T *, U &&) noexcept
with this
and the input.
Requires : predicate::enable_compatible_conversion<A, B, C, D>
is true.
Complexity : Same as for the copy constructors of the underlying types. Constexpr, triviality and noexcept of underlying operations is propagated.
Guarantees : If an exception is thrown during the operation, the object is left in a partially completed state, as per the normal rules for the same operation on a struct
.