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
explicit basic_result(const basic_result<R, S, P> &)
Explicit converting copy constructor from compatible basic_result
. Calls void on_result_copy_construction(T *, U &&) noexcept
with this
and the input.
Requires : predicate::enable_make_exception_ptr_compatible_conversion<R, S, P>
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
.