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
error_type &&assume_error() && noexcept
Narrow contract rvalue reference observer of the stored error. NoValuePolicy::narrow_error_check()
is first invoked, then the reference to the error is returned. As a valid default constructed error is always present, no undefined behaviour occurs unless NoValuePolicy::narrow_error_check()
does that.
Note that if error_type
is void
, only a const
overload returning void
is present.
Requires : Always available.
Complexity : Depends on NoValuePolicy::narrow_error_check()
.
Guarantees : An exception is never thrown.