Constructors
`basic_outcome() = delete`
The default constructor for basic outcome is always disabled. »
`basic_outcome(A1 &&, A2 &&, Args ...)`
Implicit inplace value or error or exception constructor. Delegates to an appropriate explicit inplace constructor depending on input. Requires: predicate::enable_inplace_value_error_exception_constructor` is true. Complexity: Same as for the value_type or error_type or exception_type constructor which accepts A1, A2, Args .... Constexpr, triviality and noexcept of underlying operations is propagated. Guarantees: If an exception is thrown during the operation, the state of the Args is left indeterminate. »
`basic_outcome(Args...) = delete`
Disabling catchall constructor used to give useful diagnostic error when trying to use non-inplace constructors when predicate::constructors_enabled is false. Requires: predicate::constructors_enabled is false. Complexity: N/A. »
`basic_outcome(ErrorCondEnum &&)`
Implicit error_type from ErrorCondEnum constructor. Calls void on_outcome_construction(T *, U &&) noexcept with this and ErrorCondEnum. Requires: predicate::enable_error_condition_converting_constructor<R> is true. Complexity: Same as for error_type’s copy or move constructor from the result of make_error_code(ErrorCondEnum). Constexpr, triviality and noexcept of underlying operations is propagated. Guarantees: If an exception is thrown during the operation, the state of the input is left indeterminate. »
`basic_outcome(P &&)`
Implicit exception_type constructor. Calls void on_outcome_construction(T *, U &&) noexcept with this and P. Requires: predicate::enable_exception_converting_constructor<P> is true. Complexity: Same as for exception_type’s copy or move constructor. Constexpr, triviality and noexcept of underlying operations is propagated. »
`basic_outcome(R &&)`
Implicit value_type constructor. Calls void on_outcome_construction(T *, U &&) noexcept with this and R. Requires: predicate::enable_value_converting_constructor<R> is true. Complexity: Same as for value_type’s copy or move constructor. Constexpr, triviality and noexcept of underlying operations is propagated. »
`basic_outcome(S &&)`
Implicit error_type constructor. Calls void on_outcome_construction(T *, U &&) noexcept with this and S. Requires: predicate::enable_error_converting_constructor<S> is true. Complexity: Same as for error_type’s copy or move constructor. Constexpr, triviality and noexcept of underlying operations is propagated. »
`basic_outcome(S &&, P &&)`
Implicit error_type + exception_type constructor. Calls void on_outcome_construction(T *, U &&, V &&) noexcept with this, S and P. Requires: predicate::enable_error_exception_converting_constructor<S, P> is true. Complexity: Same as for error_type’s and exception_type’s copy or move constructor. Constexpr, triviality and noexcept of underlying operations is propagated. »
`basic_outcome(X &&) = delete`
Disabling implicit constructor used to give useful diagnostic error when trying to use implicit constructors when predicate::implicit_constructors_enabled is false. Requires: predicate::implicit_constructors_enabled is false. Complexity: N/A. »
`basic_outcome(basic_outcome &&)`
Move constructor. Requires: that value_type, error_type and exception_type all implement a move constructor. Complexity: Same as for value_type’s, error_type’s and exception_type’s move 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. »