You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ideally, this should be resolved by moving the implementation of SafeAdd into the Result returning overload then using Result::Value in the Status returning function. In cases where this is inconvenient, it'd be helpful to have an adapter for doing this more efficiently:
Result<int> SafeAdd(inta, intb) {
returnRESULT_INVOKE(SafeAdd, a, b);
}
This will probably have to be a macro; otherwise the return type can be inferred but only when the function is not overloaded
Micah Kornfield / @emkornfield:
This seems like potentially the wrong direction to encourage implementations.
I think we should provide the real implementation in the Result<> function and if necessary provide a macro to replace the output value function. e.g. the boiler plate if we want to eliminate it should be:
Status SafeAdd(a, b, int* out) {``
ASSIGN_OR_RETURN(auto out, SafeAdd(a, b));
return Status::OK();
It seems like this could be accomplished with template magic but might be OK just as is (or with a template).
There is a proliferation of code like:
Ideally, this should be resolved by moving the implementation of SafeAdd into the Result returning overload then using
Result::Value
in the Status returning function. In cases where this is inconvenient, it'd be helpful to have an adapter for doing this more efficiently:This will probably have to be a macro; otherwise the return type can be inferred but only when the function is not overloaded
Reporter: Ben Kietzman / @bkietz
Assignee: Ben Kietzman / @bkietz
Note: This issue was originally created as ARROW-7086. Please see the migration documentation for further details.
The text was updated successfully, but these errors were encountered: