Converting Constructors

`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_error_code_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. »

`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. »