The current implementation assumes that if the Ros Action is aborted or otherwise fails that the result returned from the action server is not meaningful. However,there are some cases where that is not true. Consider nav2/action/NavgiateThroughPoses which has an error code in the result. That error code is basically only applicable when the action fails!
The proposed implementation maintains API compatibility. If the user cares about the result, they can implement the newly added virtual method.
Note that result is nullopt on any code paths where a result is not available.
The current implementation assumes that if the Ros Action is aborted or otherwise fails that the result returned from the action server is not meaningful. However,there are some cases where that is not true. Consider nav2/action/NavgiateThroughPoses which has an error code in the result. That error code is basically only applicable when the action fails!
The proposed implementation maintains API compatibility. If the user cares about the result, they can implement the newly added virtual method.
Note that result is nullopt on any code paths where a result is not available.