decltype(auto) try_operation_return_as(X)

This default implementation preferentially returns whatever the input type’s .as_failure() member function returns. basic_result and basic_outcome provide such a member function, see auto as_failure() const & .

If .as_failure() is not available, it will also match any .error() member function, which it wraps into a failure type sugar using failure(T &&, ...) .

Requires: That the expression std::declval<T>().as_failure() and/or std::declval<T>().error() is a valid expression.

Namespace: OUTCOME_V2_NAMESPACE

Header: <outcome/try.hpp>