Modifiers
`auto as_failure() &&`
Return the output from free function auto failure(T &&, ...) containing a move from any errored state, thus leaving the result’s error value in a moved-from state. Depending on the choice of error_type, this function may therefore be destructive. The error state is accessed using error_type &&assume_error() && noexcept . Requires: Always available. Complexity: Whatever that of error_type’s move constructor is. Guarantees: None. »
`failure_type<error_type, exception_type> as_failure() &&`
Return the output from free function auto failure(T &&, ...) containing a move from any errored and/or excepted state, thus leaving the outcome’s error and exception values in a moved-from state. Depending on the choice of error_type and/or exception_type, this function may therefore be destructive. The error and exception states are accessed using error_type &&assume_error() && noexcept and exception_type &&assume_exception() && noexcept . Requires: Always available. Complexity: Whatever that of error_type’s and/or exception_type’s move constructor is. »
`static void _set_has_error(Impl &&, bool) noexcept`
Sets whether the implementation has an error by setting or clearing the relevant bit in the flags. Constexpr where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »
`static void _set_has_exception(Impl &&, bool) noexcept`
Sets whether the implementation has an exception by setting or clearing the relevant bit in the flags. Constexpr where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »
`static void _set_has_exception(Impl &&, bool) noexcept`
Sets whether the implementation’s error code has a domain or category matching that of POSIX errno by setting or clearing the relevant bit in the flags. Constexpr where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »
`static void _set_has_value(Impl &&, bool) noexcept`
Sets whether the implementation has a value by setting or clearing the relevant bit in the flags. Constexpr where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »
`void swap(basic_outcome &)`
Swap one basic_outcome with another, with the strong guarantee. Constexpr if move constructors and move assignments of value_type, error_type and exception_type are noexcept. Requires: Always available. Complexity: If the move constructor and move assignment for value_type, error_type and exception_type are noexcept, the complexity is the same as for the swap() implementations of the value_type, error_type and exception_type. Otherwise, complexity is not preserved, as strong_swap(bool &all_good, T &a, T &b) is used instead of swap(). »
`void swap(basic_result &)`
Swap one basic_result with another, with the strong guarantee. Constexpr if move constructors and move assignments of value_type and error_type are noexcept. Requires: Always available. Complexity: If the move constructor and move assignment for value_type and error_type are noexcept, the complexity is the same as for the swap() implementations of the value_type and error_type. Otherwise, complexity is not preserved, as strong_swap(bool &all_good, T &a, T &b) is used instead of swap(). »