Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / outcome / doc / src / content / reference / types / basic_outcome / explicit_result_make_error_code_move_converting_constructor.md
1 +++
2 title = "`explicit basic_outcome(basic_result<A, B, C> &&)`"
3 description = "Explicit converting move constructor from compatible `basic_result`. Available if `predicate::enable_make_error_code_compatible_conversion<A, B, void, C>` is true. Constexpr, triviality and noexcept propagating."
4 categories = ["constructors", "explicit-constructors", "converting-constructors"]
5 weight = 342
6 +++
7
8 Explicit converting move constructor from compatible `basic_result`. Calls {{% api "void hook_outcome_move_construction(T *, U &&) noexcept" %}} with `this` and the input.
9
10 *Requires*: `predicate::enable_make_error_code_compatible_conversion<A, B, void, C>` is true.
11
12 *Complexity*: Same as for the move constructors of the underlying types. Constexpr, triviality and noexcept of underlying operations is propagated.
13
14 *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`.