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_result<T, E, NoValuePolicy>`
--- `basic_result() = delete`
--- `basic_result(basic_result &&)`
--- `basic_result(const basic_result &)`
--- `basic_result &operator=(basic_result &&)`
--- `basic_result &operator=(const basic_result &)`
--- `~basic_result()`
--- `basic_result(Args...) = delete`
--- `basic_result(X &&) = delete`
--- `basic_result(R &&)`
--- `basic_result(S &&)`
--- `basic_result(ErrorCondEnum &&)`
--- `explicit basic_result(concepts::value_or_error<T, E> &&)`
--- `explicit basic_result(const basic_result<R, S, P> &)`
--- `explicit basic_result(basic_result<R, S, P> &&)`
--- `explicit basic_result(const basic_result<R, S, P> &)`
--- `explicit basic_result(basic_result<R, S, P> &&)`
--- `explicit basic_result(const basic_result<R, S, P> &)`
--- `explicit basic_result(basic_result<R, S, P> &&)`
--- `explicit basic_result(in_place_type_t<value_type_if_enabled>, Args ...)`
--- `explicit basic_result(in_place_type_t<value_type_if_enabled>, std::initializer_list<U>, Args ...)`
--- `explicit basic_result(in_place_type_t<error_type_if_enabled>, Args ...)`
--- `explicit basic_result(in_place_type_t<error_type_if_enabled>, std::initializer_list<U>, Args ...)`
--- `basic_result(A1 &&, A2 &&, Args ...)`
--- `basic_result(const success_type<T> &)`
--- `basic_result(success_type<T> &&)`
--- `basic_result(const failure_type<T> &)`
--- `basic_result(failure_type<T> &&)`
--- `basic_result(const failure_type<T> &)`
--- `basic_result(failure_type<T> &&)`
--- `basic_result(const failure_type<T> &)`
--- `basic_result(failure_type<T> &&)`
--- `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`
--- `bool has_lost_consistency() 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 &&`
--- `bool operator==(const basic_result<A, B, C> &) const`
--- `bool operator==(const success_type<A> &) const`
--- `bool operator==(const failure_type<A, void> &) const`
--- `bool operator!=(const basic_result<A, B, C> &) const`
--- `bool operator!=(const success_type<A> &) const`
--- `bool operator!=(const failure_type<A, void> &) const`
--- `void swap(basic_result &)`
--- `auto as_failure() const &`
--- `auto as_failure() &&`
-- `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
const value_type &&assume_value() const && noexcept
Narrow contract const rvalue reference observer of any value present. NoValuePolicy::narrow_value_check()
is first invoked, then the reference to the value is returned. The convention is that hard undefined behaviour occurs if no value is actually present, however NoValuePolicy::narrow_value_check()
can do something to avoid that.
Note that if value_type
is void
, only a const
overload returning void
is present.
Requires : Always available.
Complexity : Depends on NoValuePolicy::narrow_value_check()
.
Guarantees : An exception is never thrown.