Implicit Constructors

`basic_result(A1 &&, A2 &&, Args ...)`

Implicit inplace value or error constructor. Delegates to an appropriate explicit inplace constructor depending on input. Requires: predicate::enable_inplace_value_error_constructor` is true. Complexity: Same as for the value_type or error_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_result(ErrorCondEnum &&)`

Implicit error_type from ErrorCondEnum constructor. Calls void on_result_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_result(R &&)`

Implicit value_type constructor. Calls void on_result_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_result(S &&)`

Implicit error_type constructor. Calls void on_result_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_result(basic_result &&)`

Move constructor. Requires: that value_type and error_type both implement a move constructor. Complexity: Same as for value_type’s and error_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. »

`basic_result(const basic_result &)`

Copy constructor. Requires: that value_type and error_type both implement a copy constructor. Complexity: Same as for value_type’s and error_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_result(const failure_type<T> &)`

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

`basic_result(const failure_type<T> &)`

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

`basic_result(const failure_type<T> &)`

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

`basic_result(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_result_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. »