Constructors

`basic_outcome(const basic_outcome &)`

Copy constructor. Requires: that value_type, error_type and exception_type all implement a copy constructor. Complexity: Same as for value_type’s, error_type’s and exception_type’s copy constructors. 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. »

`basic_outcome(const failure_type<EC, EP> &)`

Implicit error-and-exception-from-failure-type-sugar copy constructor used to disambiguate the construction of the error + exception types. Calls void on_outcome_copy_construction(T *, U &&, V &&) noexcept with this, const failure_type<EC> & and const failure_type<EP> &. Requires: predicate::enable_compatible_conversion<void, EC, EP, void> is true. Complexity: Same as for the error_type and exception_type constructors which accept EC and EP. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(const failure_type<EC> &)`

Implicit error-from-failure-type-sugar copy constructor used to disambiguate the construction of the error type. Calls void on_outcome_copy_construction(T *, U &&) noexcept with this and const failure_type<EC> &. Requires: predicate::enable_compatible_conversion<void, EC, void, void> is true. Complexity: Same as for the error_type constructor which accepts EC. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(const failure_type<EC> &)`

Implicit error-from-failure-type-sugar copy constructor used to disambiguate the construction of the error type. Calls void on_outcome_copy_construction(T *, U &&) noexcept with this and const failure_type<EC> &. Requires: predicate::enable_make_error_code_compatible_conversion<void, EC, void, void> is true. Complexity: Same as for the error_type constructor which accepts EC. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(const failure_type<EP> &)`

Implicit exception-from-failure-type-sugar copy constructor used to disambiguate the construction of the exception type. Calls void on_outcome_copy_construction(T *, U &&) noexcept with this and const failure_type<EP> &. Requires: predicate::enable_compatible_conversion<void, void, EP, void> is true. Complexity: Same as for the exception_type constructor which accepts EP. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(const success_type<T> &)`

Implicit value-from-success-type-sugar copy constructor used to disambiguate the construction of the value type. Note that if T = void, value_type will be default constructed. Calls void on_outcome_copy_construction(T *, U &&) noexcept with this and const success_type<T> &. Requires: predicate::enable_compatible_conversion<T, void, void> is true, or T is void. Complexity: Same as for the value_type constructor which accepts T, or the value_type default constructor if T is void. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(failure_type<EC, EP> &&)`

Implicit error-and-exception-from-failure-type-sugar move constructor used to disambiguate the construction of the error + exception types. Calls void on_outcome_move_construction(T *, U &&, V &&) noexcept with this, failure_type<EC> && and failure_type<EP> &&. Requires: predicate::enable_compatible_conversion<void, EC, EP, void> is true. Complexity: Same as for the error_type and exception_type constructors which accept EC and EP. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(failure_type<EC> &&)`

Implicit error-from-failure-type-sugar move constructor used to disambiguate the construction of the error type. Calls void on_outcome_move_construction(T *, U &&) noexcept with this and failure_type<EC> &&. Requires: predicate::enable_compatible_conversion<void, EC, void, void> is true. Complexity: Same as for the error_type constructor which accepts EC. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(failure_type<EC> &&)`

Implicit error-from-failure-type-sugar move constructor used to disambiguate the construction of the error type. Calls void on_outcome_move_construction(T *, U &&) noexcept with this and failure_type<EC> &&. Requires: predicate::enable_make_error_code_compatible_conversion<void, EC, void, void> is true. Complexity: Same as for the error_type constructor which accepts EC. Constexpr, triviality and noexcept of underlying operations is propagated. »

`basic_outcome(failure_type<EP> &&)`

Implicit exception-from-failure-type-sugar move constructor used to disambiguate the construction of the exception type. Calls void on_outcome_move_construction(T *, U &&) noexcept with this and failure_type<EP> &&. Requires: predicate::enable_compatible_conversion<void, void, EP, void> is true. Complexity: Same as for the exception_type constructor which accepts EP. Constexpr, triviality and noexcept of underlying operations is propagated. »